On 04/23/2012 10:39 AM, Xiao Guangrong wrote: > On 04/22/2012 07:39 PM, Avi Kivity wrote: > > > 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. > > So, IPI is unconditionally sent, do we need introduce a new MODE (say > STOP_SP_FREE) to reduce IPI? We can just reuse IN_GUEST_MODE for this (with a comment explaining why). -- 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