Thread (47 messages) 47 messages, 8 authors, 2017-04-05

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 address
space.
quoted
quoted
quoted
Not all user space is ready to handle wide addresses. It's known
that
quoted
quoted
quoted
at least some JIT compilers use higher bits in pointers to encode
their
quoted
quoted
quoted
information. It collides with valid pointers with 5-level paging
and
quoted
quoted
quoted
leads to crashes.

To mitigate this, we are not going to allocate virtual address
space
quoted
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
try
quoted
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
than
quoted
quoted
quoted
from 47-bit window.

This approach helps to easily make application's memory allocator
aware
quoted
quoted
quoted
about large address space without manually tracking allocated
virtual
quoted
quoted
quoted
address space.
So if I have done a successful mmap which returned > 128TB what
should a
quoted
quoted
following mmap(0,...) return ? Should that now search the *full*
address
quoted
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 other
part
quoted
of the process requested high address.
What is the epectation when the hint addr is below 128TB but addr + len
quoted
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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help