Re: [patch 1/3] KVM: MMU: collapse remote TLB flushes on root sync

Marcelo Tosatti
2008-10-31T19:32:00Z

On Thu, Oct 30, 2008 at 12:04:33PM +0200, Avi Kivity wrote:
> Marcelo Tosatti wrote:
>> There is significant overhead now in comparison to the early indexing
>> scheme with a list per root. It must be optimized.
>>
>
> What's the typical number of (1) unsynced pages and (2) unsynced pages
> belonging to next cr3 when switching cr3?
>
> I'm guessing (1) and (2) are almost equal, and both fairly large?

About 1% of memory unsynced (including pages that are not pagetables
anymore, so the value is not exact).

Not equal, (2) a hundred or so.

> Perhaps it can simply collect the pages, then do a write-protect pass,
> tlb flush, and resync pass. The two passes are now over L1 cached data
> so they're not too expensive.

Thats what its doing.

> We could:
> - keep all three parents in the array
> - for the bitmap, keep a count of how many bits are set
> - when we clear a bit, we dec the count, and if zero, we clear the bit
> in the parent's parent.

Yep.