Re: [PATCH 26/26] x86/mm: allow to have userspace mappings above 47-bits
From: hpa@zytor.com
Date: 2017-03-20 18:09:45
Also in:
linux-mm, lkml
On March 19, 2017 1:26:58 AM PDT, "Kirill A. Shutemov" [off-list ref] wrote:
On Mar 19, 2017 09:25, "Aneesh Kumar K.V" [off-list ref] wrote: "Kirill A. Shutemov" [off-list ref] writes:quoted
On Fri, Mar 17, 2017 at 11:23:54PM +0530, Aneesh Kumar K.V wrote:quoted
"Kirill A. Shutemov" [off-list ref] writes:quoted
On x86, 5-level paging enables 56-bit userspace virtual addressspace.quoted
quoted
quoted
Not all user space is ready to handle wide addresses. It's knownthatquoted
quoted
quoted
at least some JIT compilers use higher bits in pointers to encodetheirquoted
quoted
quoted
information. It collides with valid pointers with 5-level pagingandquoted
quoted
quoted
leads to crashes. To mitigate this, we are not going to allocate virtual addressspacequoted
quoted
quoted
above 47-bit by default. But userspace can ask for allocation from full address space by specifying hint address (with or without MAP_FIXED) above 47-bits. If hint address set above 47-bit, but MAP_FIXED is not specified,we tryquoted
quoted
quoted
to look for unmapped area by specified address. If it's already occupied, we look for unmapped area in *full* address space,rather thanquoted
quoted
quoted
from 47-bit window. This approach helps to easily make application's memory allocatorawarequoted
quoted
quoted
about large address space without manually tracking allocatedvirtualquoted
quoted
quoted
address space.So if I have done a successful mmap which returned > 128TB whatshould aquoted
quoted
following mmap(0,...) return ? Should that now search the *full*addressquoted
quoted
space or below 128TB ?No, I don't think so. And this implementation doesn't do this. It's safer this way: if an library can't handle high addresses, it's better not to switch it automagically to full address space if otherpartquoted
of the process requested high address.What is the epectation when the hint addr is below 128TB but addr + lenquoted
128TB ? Should such mmap request fail ? Yes, I believe so.
This *better* be conditional on some kind of settable limit. Having a barrier in the middle of the address space for no apparent reason to "clean" software is insane. -- Sent from my Android device with K-9 Mail. Please excuse my brevity. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>