Messages in this thread | | | Date | Wed, 6 May 2009 15:17:35 +0200 | From | Andrea Arcangeli <> | Subject | Re: [PATCH 2/6] ksm: dont allow overlap memory addresses registrations. |
| |
On Wed, May 06, 2009 at 08:26:18AM -0400, Rik van Riel wrote: > The user can break up the underlying VMAs though. > > I am just wondering out loud if we really want two > VMA-like objects in the kernel, the VMA itself and > a separate KSM object, with different semantics. > > Maybe this is fine, but I do think it's a question > that needs to be thought about.
If we want to keep KVM self contained we need a separate object. If we want to merge part of KVM into the kernel VM core, then it can use the vma and use madvise or better its own syscall (usually madvise doesn't depend on admin starting kernel threads) or similar and the semantics will change slightly. From a practical point of view I don't think there's much difference and it can be done later if we change our mind, given the low amount of apps that uses KVM (but for those few apps like KVM, KSM can save tons of memory).
For example for the swapping of KSM pages we've been thinking of using external rmap hooks to avoid the VM to know anything specific to KSM pages but to still allow their unmapping and swap. Otherwise if there are other modules like KVM that wants to extend the VM they'll also have to add their own PG_ bitflags just for allow the swapping of their own pages in the VM LRUs etc..
| |