Re: missing kvm smp tlb flush in invlpg

Avi Kivity
2009-03-15T16:20:01Z

Andrea Arcangeli wrote:
> On Sun, Mar 15, 2009 at 12:35:48PM +0200, Avi Kivity wrote:
>
>> Izik pointed out that for invlpg, the guest is responsible for smp tlb
>> flushes, and mmu notifiers will protect against pageout.
>>
>
> How will mmu notifier protect against pageout if the spte is already
> invalid and removed from the rmapp chain? mmu notifier will search the
> rmapp chain and it'll find nothing, it'll do nothing, so then the page
> will be freed under the other cpus without no ipi flushing their VT
> tlbs.
>

I mentioned this:

> I think we can fix this without taking the hit of the IPI by
> - running a local invlpg()
> - making need_flush a vm flag instead of a local
> - clearing need_flush whenever remote tlbs are flushed
> - flushing remote tlbs on an mmu_notifier call when need_flush is set

--
error compiling committee.c: too many arguments to function