[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <558034B1.1030906@suse.com>
Date: Tue, 16 Jun 2015 16:37:37 +0200
From: Juergen Gross <jgross@...e.com>
To: linux-kernel@...r.kernel.org, x86@...nel.org, hpa@...or.com,
tglx@...utronix.de, mingo@...hat.com,
xen-devel@...ts.xensource.com, konrad.wilk@...cle.com,
david.vrabel@...rix.com, boris.ostrovsky@...cle.com,
jeremy@...p.org, chrisw@...s-sol.org, akataria@...are.com,
rusty@...tcorp.com.au, virtualization@...ts.linux-foundation.org,
gleb@...nel.org, pbonzini@...hat.com, kvm@...r.kernel.org
Subject: Re: [PATCH 0/6] x86: reduce paravirtualized spinlock overhead
AFAIK there are no outstanding questions for more than one month now.
I'd appreciate some feedback or accepting these patches.
Juergen
On 04/30/2015 12:53 PM, Juergen Gross wrote:
> Paravirtualized spinlocks produce some overhead even if the kernel is
> running on bare metal. The main reason are the more complex locking
> and unlocking functions. Especially unlocking is no longer just one
> instruction but so complex that it is no longer inlined.
>
> This patch series addresses this issue by adding two more pvops
> functions to reduce the size of the inlined spinlock functions. When
> running on bare metal unlocking is again basically one instruction.
>
> Compile tested with CONFIG_PARAVIRT_SPINLOCKS on and off, 32 and 64
> bits.
>
> Functional testing on bare metal and as Xen dom0.
>
> Correct patching verified by disassembly of active kernel.
>
> Juergen Gross (6):
> x86: use macro instead of "0" for setting TICKET_SLOWPATH_FLAG
> x86: move decision about clearing slowpath flag into arch_spin_lock()
> x86: introduce new pvops function clear_slowpath
> x86: introduce new pvops function spin_unlock
> x86: switch config from UNINLINE_SPIN_UNLOCK to INLINE_SPIN_UNLOCK
> x86: remove no longer needed paravirt_ticketlocks_enabled
>
> arch/x86/Kconfig | 1 -
> arch/x86/include/asm/paravirt.h | 13 +++++++++
> arch/x86/include/asm/paravirt_types.h | 12 ++++++++
> arch/x86/include/asm/spinlock.h | 53 ++++++++++++-----------------------
> arch/x86/include/asm/spinlock_types.h | 3 +-
> arch/x86/kernel/kvm.c | 14 +--------
> arch/x86/kernel/paravirt-spinlocks.c | 42 +++++++++++++++++++++++++--
> arch/x86/kernel/paravirt.c | 12 ++++++++
> arch/x86/kernel/paravirt_patch_32.c | 25 +++++++++++++++++
> arch/x86/kernel/paravirt_patch_64.c | 24 ++++++++++++++++
> arch/x86/xen/spinlock.c | 23 +--------------
> include/linux/spinlock_api_smp.h | 2 +-
> kernel/Kconfig.locks | 7 +++--
> kernel/Kconfig.preempt | 3 +-
> kernel/locking/spinlock.c | 2 +-
> lib/Kconfig.debug | 1 -
> 16 files changed, 154 insertions(+), 83 deletions(-)
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists