Re: [RFC] respect the referenced bit of KVM guest pages?

From: Andrea Arcangeli
Date: Wed Aug 05 2009 - 12:36:19 EST


On Wed, Aug 05, 2009 at 06:25:28PM +0300, Avi Kivity wrote:
> On 08/05/2009 06:15 PM, Rik van Riel wrote:
> > Avi Kivity wrote:
> >
> >>> If so, we could unmap them when they get moved from the
> >>> active to the inactive list, and soft fault them back in
> >>> on access, emulating the referenced bit for EPT pages and
> >>> making page replacement on them work like it should.
> >>
> >> It should be easy to implement via the mmu notifier callback: when
> >> the mm calls clear_flush_young(), mark it as young, and unmap it from
> >> the EPT pagetable.
> >
> > You mean "mark it as old"?
>
> I meant 'return young, and drop it from the EPT pagetable'.
>
> If we use the present bit as a replacement for the accessed bit, present
> means young, and clear_flush_young means "if present, return young and
> unmap, otherwise return old'.

This is the only way to provide accurate information, and it's still a
minor fault so not very different than return young first time around
and old second time around without invalidating the spte... but the
only reason I like it more is that it is done at the right time, like
for the ptes, so probably it's best to implement it this way to ensure
total fairness of the VM regardless if it's guest or qemu-kvm touching
the virtual memory.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/