lkml.org 
[lkml]   [2012]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH v2 6/7] kvm,x86: RCU based table free
    On Tue, 5 Jun 2012, Nikunj A Dadhania wrote:
    > On Tue, 5 Jun 2012 11:48:02 +0100, Stefano Stabellini <stefano.stabellini@eu.citrix.com> 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@eu.citrix.com>

    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

    \
     
     \ /
      Last update: 2012-06-05 14:41    [W:0.037 / U:30.852 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site