[PATCH v3 0/6] powerpc: queued spinlocks and rwlocks

Waiman Long longman at redhat.com
Wed Jul 8 13:33:45 AEST 2020


On 7/7/20 1:57 AM, Nicholas Piggin wrote:
> Yes, powerpc could certainly get more performance out of the slow
> paths, and then there are a few parameters to tune.
>
> We don't have a good alternate patching for function calls yet, but
> that would be something to do for native vs pv.
>
> And then there seem to be one or two tunable parameters we could
> experiment with.
>
> The paravirt locks may need a bit more tuning. Some simple testing
> under KVM shows we might be a bit slower in some cases. Whether this
> is fairness or something else I'm not sure. The current simple pv
> spinlock code can do a directed yield to the lock holder CPU, whereas
> the pv qspl here just does a general yield. I think we might actually
> be able to change that to also support directed yield. Though I'm
> not sure if this is actually the cause of the slowdown yet.

Regarding the paravirt lock, I have taken a further look into the 
current PPC spinlock code. There is an equivalent of pv_wait() but no 
pv_kick(). Maybe PPC doesn't really need that. Attached are two 
additional qspinlock patches that adds a CONFIG_PARAVIRT_QSPINLOCKS_LITE 
option to not require pv_kick(). There is also a fixup patch to be 
applied after your patchset.

I don't have access to a PPC LPAR with shared processor at the moment, 
so I can't test the performance of the paravirt code. Would you mind 
adding my patches and do some performance test on your end to see if it 
gives better result?

Thanks,
Longman

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-locking-pvqspinlock-Code-relocation-and-extraction.patch
Type: text/x-patch
Size: 11939 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20200707/a022922c/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-locking-pvqspinlock-Introduce-CONFIG_PARAVIRT_QSPINL.patch
Type: text/x-patch
Size: 6167 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20200707/a022922c/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0009-powerpc-pseries-Fixup.patch
Type: text/x-patch
Size: 3087 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20200707/a022922c/attachment-0005.bin>


More information about the Linuxppc-dev mailing list