Re: [PATCH 00/13] KVM: MMU: fast page fault

Takuya Yoshikawa
2012-04-10T11:40:38Z

On Tue, 10 Apr 2012 13:39:14 +0300
Avi Kivity <avi@redhat.com> wrote:

> On 04/09/2012 10:46 PM, Marcelo Tosatti wrote:
> > Perhaps the mmu_lock hold times by get_dirty are a large component here?
> > If that can be alleviated, not only RO->RW faults benefit.
> >
> >
>
> Currently the longest holder in normal use is probably reading the dirty
> log and write protecting the shadow page tables.
>
> We could fix that by switching to O(1) write protection
> (write-protecting PML4Es instead of PTEs). It would be interesting to
> combine O(1) write protection with lockless write-enabling.
>

As Marcelo suggested during reviewing srcu-less dirty logging, we can
mitigate the get_dirty's mmu_lock hold time problem cleanly, locally in
get_dirty_log(), by using cond_resched_lock() -- although we need to
introduce cond_rescheck_lock_cb() to conditionally flush TLB.

I have already started that work.

Actually I introduced rmap based get_dirty for that kind of fine-grained
contention control.

I think we should do our best not to affect mmu so much just for the
limited time of live migration.

Takuya