On 04/21/2012 05:31 AM, Marcelo Tosatti wrote:
> On Thu, Apr 19, 2012 at 07:26:35PM +0300, 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 Kivity (2):
> > KVM: MMU: Always free shadow pages using RCU
> > KVM: MMU: Recover space used by rcu_head in struct kvm_mmu_page
> >
> > arch/x86/include/asm/kvm_host.h | 9 +++---
> > arch/x86/kvm/mmu.c | 58 ++++++++-------------------------------
> > 2 files changed, 15 insertions(+), 52 deletions(-)
>
> Check Documentation/RCU/checklist.txt item 8.
>
> a. Keeping a count of the number of data-structure elements
> used by the RCU-protected data structure, including
> those waiting for a grace period to elapse. Enforce a
> limit on this number, stalling updates as needed to allow
> previously deferred frees to complete. Alternatively,
> limit only the number awaiting deferred free rather than
> the total number of elements.
>
That's true before and after the patch. Currently the amount of memory
that depends on rcu for freeing is unbounded.
Maybe we should protect the fast path using local_irq_disable() instead
of rcu_read_lock(), like x86 page tables. That means that
kvm_flush_remote_tlbs() needs to ignore OUTSIDE_GUEST_MODE when IPIing
vcpu threads.
--
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
[KVM ARM]
[KVM ia64]
[KVM ppc]
[Spice Development]
[Libvirt]
[Libvirt Users]
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Linux Kernel]
[Linux SCSI]
[XFree86]