All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pan Xinhui <xinhui@linux.vnet.ibm.com>
To: Waiman Long <waiman.long@hpe.com>
Cc: linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	linuxppc-dev@lists.ozlabs.org, peterz@infradead.org,
	Boqun Feng <boqun.feng@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	jeremy@goop.org, chrisw@sous-sol.org, akataria@vmware.com,
	rusty@rustcorp.com.au, gwshan@linux.vnet.ibm.com,
	adam.buchbinder@gmail.com, tglx@linutronix.de,
	marc.zyngier@arm.com
Subject: Re: [PATCH resend] powerpc: enable qspinlock and its virtualization support
Date: Fri, 29 Apr 2016 10:34:28 +0800	[thread overview]
Message-ID: <5722C834.1030209@linux.vnet.ibm.com> (raw)
In-Reply-To: <57227BAA.7040807@hpe.com>


On 2016年04月29日 05:07, Waiman Long wrote:
> On 04/28/2016 06:55 AM, Pan Xinhui wrote:
>> From: Pan Xinhui<xinhui.pan@linux.vnet.ibm.com>
>>
>> This patch aims to enable qspinlock on PPC. And on pseries platform, it also support
>> paravirt qspinlock.
>>
>> Signed-off-by: Pan Xinhui<xinhui.pan@linux.vnet.ibm.com>
>> ---
>>   arch/powerpc/include/asm/qspinlock.h               | 37 +++++++++++++++
>>   arch/powerpc/include/asm/qspinlock_paravirt.h      | 36 +++++++++++++++
>>   .../powerpc/include/asm/qspinlock_paravirt_types.h | 13 ++++++
>>   arch/powerpc/include/asm/spinlock.h                | 31 ++++++++-----
>>   arch/powerpc/include/asm/spinlock_types.h          |  4 ++
>>   arch/powerpc/kernel/paravirt.c                     | 52 ++++++++++++++++++++++
>>   arch/powerpc/lib/locks.c                           | 32 +++++++++++++
>>   arch/powerpc/platforms/pseries/setup.c             |  5 +++
>>   8 files changed, 198 insertions(+), 12 deletions(-)
>>   create mode 100644 arch/powerpc/include/asm/qspinlock.h
>>   create mode 100644 arch/powerpc/include/asm/qspinlock_paravirt.h
>>   create mode 100644 arch/powerpc/include/asm/qspinlock_paravirt_types.h
>>   create mode 100644 arch/powerpc/kernel/paravirt.c
>>
>>
> 
> This is just an enablement patch. You will also need a patch to activate qspinlock for, at lease, some PPC configs. Right?
> 
yep, I want to enable these config and makefile at last.
it just looks like

diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 2da380f..ae7c2f1 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -50,6 +50,7 @@ obj-$(CONFIG_PPC_970_NAP)	+= idle_power4.o
 obj-$(CONFIG_PPC_P7_NAP)	+= idle_power7.o
 procfs-y			:= proc_powerpc.o
 obj-$(CONFIG_PROC_FS)		+= $(procfs-y)
+obj-$(CONFIG_PARAVIRT_SPINLOCKS)	+= paravirt.o
 rtaspci-$(CONFIG_PPC64)-$(CONFIG_PCI)	:= rtas_pci.o
 obj-$(CONFIG_PPC_RTAS)		+= rtas.o rtas-rtc.o $(rtaspci-y-y)
 obj-$(CONFIG_PPC_RTAS_DAEMON)	+= rtasd.o
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig
index bec90fb..46632e4 100644
--- a/arch/powerpc/platforms/pseries/Kconfig
+++ b/arch/powerpc/platforms/pseries/Kconfig
@@ -21,6 +21,7 @@ config PPC_PSERIES
 	select HOTPLUG_CPU if SMP
 	select ARCH_RANDOM
 	select PPC_DOORBELL
+	select ARCH_USE_QUEUED_SPINLOCKS
 	default y
 
 config PPC_SPLPAR
@@ -127,3 +128,11 @@ config HV_PERF_CTRS
 	  systems. 24x7 is available on Power 8 systems.
 
           If unsure, select Y.
+
+config PARAVIRT_SPINLOCKS
+	bool "Paravirtialization support for qspinlock"
+	depends on PPC_SPLPAR && QUEUED_SPINLOCKS
+	default y
+	help
+	  If platform supports virtualization, for example PowerVM, this option
+	  can let guest have a better performace.
-- 
2.4.3

> It has dependency on the pv_wait() patch that I sent out extend the parameter list. Some performance data on how PPC system will perform with and without qspinlock will also be helpful data points.
> 
For now, pv_wait defined in ppc is static inline void pv_wait(u8 *ptr, u8 val)
My plan is that waiting your patch goes in kernel tree first, then I send out another patch to extend the parameter list.

yes, I need copy some performance data in my patch's comments.

thanks
xinhui
> Cheers,
> Longman
> 

  parent reply	other threads:[~2016-04-29  2:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-28 10:55 [PATCH resend] powerpc: enable qspinlock and its virtualization support Pan Xinhui
2016-04-28 21:07 ` Waiman Long
2016-04-28 21:07 ` Waiman Long
2016-04-29  2:34   ` Pan Xinhui
2016-04-29  2:34   ` Pan Xinhui [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-04-28 10:55 Pan Xinhui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5722C834.1030209@linux.vnet.ibm.com \
    --to=xinhui@linux.vnet.ibm.com \
    --cc=adam.buchbinder@gmail.com \
    --cc=akataria@vmware.com \
    --cc=boqun.feng@gmail.com \
    --cc=chrisw@sous-sol.org \
    --cc=gwshan@linux.vnet.ibm.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=marc.zyngier@arm.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=waiman.long@hpe.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.