OSC RDMA: only touch pages before memory registration, don't fill them
Signed-off-by: Joseph Schuchart <schuchart@hlrs.de> (cherry picked from commit 52b52b8ebbe82636b65f0adc6a0a40c165eda306)
Этот коммит содержится в:
родитель
de354eae9d
Коммит
2e1e9dc9dd
@ -650,7 +650,12 @@ static int allocate_state_shared (ompi_osc_rdma_module_t *module, void **base, s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (size && MPI_WIN_FLAVOR_ALLOCATE == module->flavor) {
|
if (size && MPI_WIN_FLAVOR_ALLOCATE == module->flavor) {
|
||||||
*base = (void *)((intptr_t) module->segment_base + my_base_offset);
|
char *baseptr = (char *)((intptr_t) module->segment_base + my_base_offset);
|
||||||
|
*base = (void *)baseptr;
|
||||||
|
// touch each page to force allocation on local NUMA node
|
||||||
|
for (size_t i = 0; i < size; i += page_size) {
|
||||||
|
baseptr[i] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module->rank_array = (ompi_osc_rdma_rank_data_t *) module->segment_base;
|
module->rank_array = (ompi_osc_rdma_rank_data_t *) module->segment_base;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user