Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756226Ab2FEL6l (ORCPT ); Tue, 5 Jun 2012 07:58:41 -0400 Received: from smtp.ctxuk.citrix.com ([62.200.22.115]:35422 "EHLO SMTP.EU.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754338Ab2FEL6j (ORCPT ); Tue, 5 Jun 2012 07:58:39 -0400 X-IronPort-AV: E=Sophos;i="4.75,718,1330905600"; d="scan'208";a="12838043" Date: Tue, 5 Jun 2012 12:58:32 +0100 From: Stefano Stabellini X-X-Sender: sstabellini@kaball.uk.xensource.com To: Nikunj A Dadhania CC: Stefano Stabellini , "peterz@infradead.org" , "mingo@elte.hu" , "mtosatti@redhat.com" , "avi@redhat.com" , "raghukt@linux.vnet.ibm.com" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "x86@kernel.org" , "jeremy@goop.org" , "vatsa@linux.vnet.ibm.com" , "hpa@zytor.com" , Konrad Rzeszutek Wilk Subject: Re: [PATCH v2 6/7] kvm,x86: RCU based table free In-Reply-To: <87ehpuqam8.fsf@linux.vnet.ibm.com> Message-ID: References: <20120604050223.4560.2874.stgit@abhimanyu.in.ibm.com> <20120604050822.4560.54662.stgit@abhimanyu.in.ibm.com> <87ehpuqam8.fsf@linux.vnet.ibm.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2553 Lines: 66 On Tue, 5 Jun 2012, Nikunj A Dadhania wrote: > On Tue, 5 Jun 2012 11:48:02 +0100, Stefano Stabellini 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 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 linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/