Re: [PATCH 0/2] Simplify RCU freeing of shadow pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/20/2012 07:05 AM, Xiao Guangrong wrote:
> On 04/20/2012 12:26 AM, Avi Kivity wrote:
>
> > This patchset simplifies the freeing by RCU of mmu pages.
> > 
> > Xiao, I'm sure you thought of always freeing by RCU.  Why didn't you choose
> > this way?  I saves a couple of atomics in the fast path.
> > 
>
>
> Avi, we have discussed it last year:
>
> https://lkml.org/lkml/2011/6/29/177

Here are my own measurements (4 way guest on 24-way host):

time make -j8

ept=0, with patch

real    3m54.526s
user    11m7.074s
sys    3m29.678s

real    3m53.806s
user    11m13.654s
sys    3m26.577s

real    3m53.578s
user    11m13.491s
sys    3m26.095s

real    3m53.956s
user    11m14.866s
sys    3m25.075s

ept=1, with patch


real    2m36.510s
user    8m18.905s
sys    1m31.712s

real    2m36.642s
user    8m18.706s
sys    1m31.898s

real    2m36.952s
user    8m20.041s
sys    1m31.929s

real    2m37.036s
user    8m20.204s
sys    1m31.947s

ept=0, unpatched

real    3m51.299s
user    11m23.770s
sys    3m28.049s

real    3m52.982s
user    11m28.419s
sys    3m29.645s

real    3m52.634s
user    11m27.325s
sys    3m29.752s

real    3m53.696s
user    11m30.215s
sys    3m30.146s

ept=1, unpatched

real    2m37.134s
user    8m26.707s
sys    1m33.152s

real    2m36.838s
user    8m26.255s
sys    1m33.078s

real    2m36.826s
user    8m26.917s
sys    1m32.449s

real    2m36.877s
user    8m26.226s
sys    1m32.074s


So there is a small degradation with ept=0 and an even smaller
improvement with ept=1.  But certainly we should give more weight to
ept=1, and also factor in the code simplification.

> I have optimized/simplified for "write flood" a lot, but, unfortunately,
> the zapping sp is still frequently.
>
> Maybe we can cache the zapped sp in a invalid_sp_list to reduce the
> frequency.

To recover the time for re-initializing sp->spt?

> Or, we may use SLAB_DESTROY_BY_RCU to free the shadow page.

IIUC a kmem_cache_alloc() can reuse an allocation freed using
SLAB_DESTROY_BY_RCU before a grace period has elapsed.

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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux