Skip to content

Commit ebd8053

Browse files
committed
FIX mmap() alignment for devdax == 2 MB
1 parent 4d781da commit ebd8053

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/provider/provider_devdax_memory.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ umf_memory_provider_ops_t *umfDevDaxMemoryProviderOps(void) {
3232
#include "utils_concurrency.h"
3333
#include "utils_log.h"
3434

35-
#define NODESET_STR_BUF_LEN 1024
35+
#define DEVDAX_ALIGNMENT_2MB (2 * 1024 * 1024) // == 2 MB
3636

3737
#define TLS_MSG_BUF_LEN 1024
3838

@@ -539,11 +539,11 @@ static umf_result_t devdax_open_ipc_handle(void *provider,
539539
unsigned map_sync_flag = 0;
540540
utils_translate_mem_visibility_flag(UMF_MEM_MAP_SYNC, &map_sync_flag);
541541

542-
// length and offset passed to mmap() have to be page-aligned
542+
// length and offset passed to mmap() have to be 2MB-aligned
543543
size_t offset_aligned = devdax_ipc_data->offset;
544544
size_t length_aligned = devdax_ipc_data->length;
545545
utils_align_ptr_down_size_up((void **)&offset_aligned, &length_aligned,
546-
utils_get_page_size());
546+
DEVDAX_ALIGNMENT_2MB);
547547

548548
// mmap /dev/dax with the MAP_SYNC xor MAP_SHARED flag (if MAP_SYNC fails)
549549
char *addr =
@@ -581,8 +581,8 @@ static umf_result_t devdax_close_ipc_handle(void *provider, void *ptr,
581581
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
582582
}
583583

584-
// ptr and size passed to munmap() have to be page-aligned
585-
utils_align_ptr_down_size_up(&ptr, &size, utils_get_page_size());
584+
// ptr and size passed to munmap() have to be 2MB-aligned
585+
utils_align_ptr_down_size_up(&ptr, &size, DEVDAX_ALIGNMENT_2MB);
586586

587587
errno = 0;
588588
int ret = utils_munmap(ptr, size);

0 commit comments

Comments
 (0)