On Tue, 5 Jun 2012, Nikunj A Dadhania wrote: > On Tue, 5 Jun 2012 11:48:02 +0100, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> wrote: > > > > I am also interested in introducing HAVE_RCU_TABLE_FREE on x86 for Xen. > > Maybe we can pull our efforts together :-) > > > > Giving a look at this patch, it doesn't look like it is introducing > > CONFIG_HAVE_RCU_TABLE_FREE anywhere under arch/x86. > > How is the user supposed to set it? > > > I am doing that in the next patch only for KVM-ParavirtTLB flush, as > there is a bug in this implementation that patch [7/7] fixes. > > Refer following thread for details: > http://mid.gmane.org/1337254086.4281.26.camel@twins > http://mid.gmane.org/1337273959.4281.62.camel@twins Thanks, somehow I missed the 7/7 patch. >From the Xen POV, your patch is fine because we'll just select PARAVIRT_TLB_FLUSH on CONFIG_XEN (see appended patch for completeness). The main difference between the two approaches is that a kernel with PARAVIRT_TLB_FLUSH and/or CONFIG_XEN enabled is going to have HAVE_RCU_TABLE_FREE even when running on native. Are you proposing this series for 3.5? If not (because it depends on ticketlocks and KVM Paravirt Spinlock patches), could you extract patch 6/7 and 7/7 and send them out separately? I am saying this because Xen needs the HAVE_RCU_TABLE_FREE fix even if pv ticketlock are not accepted. This is an outstanding bug for us unfortunately. --- xen: select PARAVIRT_TLB_FLUSH if SMP At the moment get_user_pages_fast is unsafe on Xen, because it relies on the fact that flush_tlb_others sends an IPI to flush the tlb but xen_flush_tlb_others doesn't send any IPIs and always returns succesfully and immediately. Select PARAVIRT_TLB_FLUSH, that enables an RCU lock to protect this kind of software pagetable walks (also see HAVE_RCU_TABLE_FREE and include/asm-generic/tlb.h). Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig index fdce49c..18c9876 100644 --- a/arch/x86/xen/Kconfig +++ b/arch/x86/xen/Kconfig @@ -6,6 +6,7 @@ config XEN bool "Xen guest support" select PARAVIRT select PARAVIRT_CLOCK + select PARAVIRT_TLB_FLUSH if SMP depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS) depends on X86_CMPXCHG && X86_TSC help -- 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