mem: mark pages as not accessed when reserving VA
When the memory allocator reserves virtual addresses, it still does not know what they will be used for. Besides, huge areas are reserved for memory hotplug in multiprocess setups. But most of the pages are unused in the whole life of the processes. Change protection mode to PROT_NONE when only reserving VA. The memory allocator already switches to the right mode when making use of it. It also has the nice effect of getting those pages skipped by the kernel when calling mlockall() or when a coredump gets generated. Cc: stable@dpdk.org Suggested-by: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Aaron Conole <aconole@redhat.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
parent
754b6166f5
commit
8a4baf06c1
@ -97,7 +97,7 @@ eal_get_virtual_area(void *requested_addr, size_t *size,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
mapped_addr = mmap(requested_addr, (size_t)map_sz, PROT_READ,
|
||||
mapped_addr = mmap(requested_addr, (size_t)map_sz, PROT_NONE,
|
||||
mmap_flags, -1, 0);
|
||||
if (mapped_addr == MAP_FAILED && allow_shrink)
|
||||
*size -= page_sz;
|
||||
|
Loading…
Reference in New Issue
Block a user