Re: What to expect with the 2.6 VM

Andrea Arcangeli
2003-07-03T11:17:59Z

On Wed, Jul 02, 2003 at 04:55:40PM -0700, William Lee Irwin III wrote:
> it from; we don't unmap it from all processes, just the current one, and

if this is the case, this also means mlock isn't enough to guarantee to
drop the pte_chains: you also will need everybody else mapping the file
to mlock after every mmap or the pte_chains will stay there.

Last but not the least mlock is a privilegied operations and it in turn
it *can't* be used. Those apps strictly runs as normal user for all the
good reasons. so at the very least you need a sysctl to allow anybody to
run mlock.

Yet another issue is that mlock at max locks in half of the physical
ram, this makes it unusable (google is patching it too for their
internal usage that skips the more costly page faults), so you would
need another sysctl to select the max amount of mlockable memory (or you
could share the same sysctl that makes mlock a non privilegied
operation, it's up to you).

Bottom line is that you will still need a sysctl for security reasons
(equivalent to my sysctl to make remap_file_pages runnable as normal
user with my proposal), and my proposal is an order of magnitude simpler
to implement and maintain, and it doesn't affect mlock and it doesn't
create any complication with the rest of VM, since the rest of the VM
will never see those populated-pages via remap_file_pages, they will be
threated like pages under I/O via kiobuf etc... (so anonymous ones)

Your only advantage for the VM complications is that the emulator won't
need to use the sysctl (and well, most emulators needs root privilegies
anyways for kernel modules for nat etc..) and that it will be allowed to
swap heavily without the vma overhead (that IMHO is negligeable anyways
during heavy swapping with the box idle, especially after mmap will
always run in O(log(N)) where N is the number of vmas, currently it's
O(N) but it'll be improved).

Andrea