diff options
author | Florin Coras <fcoras@cisco.com> | 2020-09-30 08:13:44 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-10-01 15:51:37 +0000 |
commit | 459a0c4e3be1473c4c2b93811280c738e60d0524 (patch) | |
tree | 23899cc401a5986256ab769703740fd013511410 /src/vppinfra | |
parent | 98d6f2971e2ed40b5c5bb96a9d6c769225a302c4 (diff) |
svm: simplify memfd client segment mapping
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I33c6a5d1686cc32a6cde149083256d6cf0770fc5
Diffstat (limited to 'src/vppinfra')
-rw-r--r-- | src/vppinfra/linux/mem.c | 58 | ||||
-rw-r--r-- | src/vppinfra/mem.h | 1 |
2 files changed, 0 insertions, 59 deletions
diff --git a/src/vppinfra/linux/mem.c b/src/vppinfra/linux/mem.c index c20de9c2103..1b3694b1af4 100644 --- a/src/vppinfra/linux/mem.c +++ b/src/vppinfra/linux/mem.c @@ -750,64 +750,6 @@ done: return r; } -clib_error_t * -clib_mem_vm_ext_map (clib_mem_vm_map_t * a) -{ - long unsigned int old_mask[16] = { 0 }; - int mmap_flags = MAP_SHARED; - clib_error_t *err = 0; - int old_mpol = -1; - void *addr; - int rv; - - if (a->numa_node) - { - rv = get_mempolicy (&old_mpol, old_mask, sizeof (old_mask) * 8 + 1, 0, - 0); - - if (rv == -1) - { - err = clib_error_return_unix (0, "get_mempolicy"); - goto done; - } - } - - if (a->requested_va) - mmap_flags |= MAP_FIXED; - - if (old_mpol != -1) - { - long unsigned int mask[16] = { 0 }; - mask[0] = 1 << a->numa_node; - rv = set_mempolicy (MPOL_BIND, mask, sizeof (mask) * 8 + 1); - if (rv == -1) - { - err = clib_error_return_unix (0, "set_mempolicy"); - goto done; - } - } - - addr = (void *) mmap (uword_to_pointer (a->requested_va, void *), a->size, - PROT_READ | PROT_WRITE, mmap_flags, a->fd, 0); - - if (addr == MAP_FAILED) - return clib_error_return_unix (0, "mmap"); - - /* re-apply old numa memory policy */ - if (old_mpol != -1 && - set_mempolicy (old_mpol, old_mask, sizeof (old_mask) * 8 + 1) == -1) - { - err = clib_error_return_unix (0, "set_mempolicy"); - goto done; - } - - a->addr = addr; - CLIB_MEM_UNPOISON (addr, a->size); - -done: - return err; -} - int clib_mem_set_numa_affinity (u8 numa_node, int force) { diff --git a/src/vppinfra/mem.h b/src/vppinfra/mem.h index 2fd4bfb5dbb..e998eb0f7bc 100644 --- a/src/vppinfra/mem.h +++ b/src/vppinfra/mem.h @@ -498,7 +498,6 @@ typedef struct u8 numa_node; } clib_mem_vm_map_t; -clib_error_t *clib_mem_vm_ext_map (clib_mem_vm_map_t * a); void clib_mem_vm_randomize_va (uword * requested_va, clib_mem_page_sz_t log2_page_size); void mheap_trace (void *v, int enable); |