Thread (19 messages) 19 messages, 5 authors, 2017-09-25

Re: [patch] mremap.2: Add description of old_size == 0 functionality

From: Michal Hocko <mhocko@kernel.org>
Date: 2017-09-25 12:52:12
Also in: linux-man, linux-mm, lkml

On Mon 25-09-17 14:40:42, Florian Weimer wrote:
On 09/25/2017 02:35 PM, Michal Hocko wrote:
quoted
What would be the usecase. I mean why don't you simply create a new
mapping by a plain mmap when you have no guarantee about the same
content?
I plan to use it for creating an unbounded number of callback thunks at run
time, from a single set of pages in libc.so, in case we need this
functionality.

The idea is to duplicate existing position-independent machine code in
libc.so, prefixed by a data mapping which controls its behavior.  Each
data/code combination would only give us a fixed number of thunks, so we'd
need to create a new mapping to increase the total number.

Instead, we could re-map the code from the executable in disk, but not if
chroot has been called or glibc has been updated on disk.  Creating an alias
mapping does not have these problems.

Another application (but that's for anonymous memory) would be to duplicate
class metadata in a Java-style VM, so that you can use bits in the class
pointer in each Java object (which is similar to the vtable pointer in C++)
for the garbage collector, without having to mask it when accessing the
class metadata in regular (mutator) code.
So, how are you going to deal with the CoW and the implementation which
basically means that the newm mmap content is not the same as the
original one?
-- 
Michal Hocko
SUSE Labs

--
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