Anthony Liguori wrote:
>>>>       
>>> Looks like it's not.  I just hung my host system after doing a bunch 
>>> of ballooning with a kernel that doesn't have MM notifiers.
>>>
>>> I'm inclined to think that we should have a capability check for MM 
>>> notifiers and just not do madvise if they aren't present.  I don't 
>>> think the ioctl approach that Marcelo took is sufficient as a 
>>> malicious guest could possibly hose the host.
>>>
>>>     
>>
>> The ioctl to zap the shadow pages is needed in order to free memory
>> fast. Without it the balloon will evacuate memory to slow for common
>> mgmt application (running additional VMs).
>>   
>
> I think that assertion needs some performance numbers to back it up.  
> Linux will write unused pages to swap such that when it does need to 
> obtain memory, it can easily just reclaim pages without doing any disk 
> IO.
>
> The real advantage with using madvise() is that it doesn't use any 
> swap space (at least, on Linux).
>

Zapping the mmu is needed so the memory can actually be reclaimed in the 
absence of mmu notifiers.  With mmu notifiers, it is unnecessary.


>
> The issue is the atomicity of removing some from the shadow MMU cache 
> and then madvise()'ing (since madvise is incapable of evicting from 
> the shadow MMU cache w/o MMU notifiers).  The only real solution I 
> know of would be to also introduce an ioctl that's essentially, 
> MADVISE_AND_REMOVE_FROM_SHADOW_MMU ioctl().
>

Or maybe

   stop all vcpus (in userspace)
   zap shadow
   madvise()
   resume all vcpus

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to