From: Waiman Long <waiman.long@hp.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
arnd@arndb.de, linux-arch@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org, rostedt@goodmis.org,
akpm@linux-foundation.org, walken@google.com,
andi@firstfloor.org, riel@redhat.com, paulmck@linux.vnet.ibm.com,
torvalds@linux-foundation.org, oleg@redhat.com
Subject: Re: [RFC][PATCH 0/7] locking: qspinlock
Date: Tue, 11 Mar 2014 23:17:46 -0400 [thread overview]
Message-ID: <531FD1DA.5010006@hp.com> (raw)
In-Reply-To: <20140311104503.GA10916@gmail.com>
On 03/11/2014 06:45 AM, Ingo Molnar wrote:
> * Peter Zijlstra<peterz@infradead.org> wrote:
>
>> Hi Waiman,
>>
>> I promised you this series a number of days ago; sorry for the delay
>> I've been somewhat unwell :/
>>
>> That said, these few patches start with a (hopefully) simple and
>> correct form of the queue spinlock, and then gradually build upon
>> it, explaining each optimization as we go.
>>
>> Having these optimizations as separate patches helps twofold;
>> firstly it makes one aware of which exact optimizations were done,
>> and secondly it allows one to proove or disprove any one step;
>> seeing how they should be mostly identity transforms.
>>
>> The resulting code is near to what you posted I think; however it
>> has one atomic op less in the pending wait-acquire case for NR_CPUS
>> != huge. It also doesn't do lock stealing; its still perfectly fair
>> afaict.
>>
>> Have I missed any tricks from your code?
> Waiman, you indicated in the other thread that these look good to you,
> right? If so then I can queue them up so that they form a base for
> further work.
>
> It would be nice to have per patch performance measurements though ...
> this split-up structure really enables that rather nicely.
>
> Thanks,
>
> Ingo
As said by Peter, I haven't reviewed his change yet. The patch I am
working on has an optimization that is similar to PeterZ's small NR_CPUS
change. Except that I do a single atomic short integer write to switch
the bits instead of 2 byte write. However, this code seems to have some
problem working with the lockref code and I had panic happening in
fs/dcache.c. So I am investigating that issue.
I am also trying to revise the PV support to be similar to what is
currently done in the PV ticketlock code. That is why I am kind of
silent this past week.
-Longman
next prev parent reply other threads:[~2014-03-12 3:18 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-10 15:42 [RFC][PATCH 0/7] locking: qspinlock Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 1/7] qspinlock: Introducing a 4-byte queue spinlock implementation Peter Zijlstra
2014-03-13 13:07 ` Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 2/7] qspinlock, x86: Enable x86 to use queue spinlock Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 3/7] qspinlock: Add pending bit Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 4/7] x86: Add atomic_test_and_set_bit() Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 5/7] qspinlock: Optimize the pending case Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 6/7] qspinlock: Optimize xchg_tail Peter Zijlstra
2014-03-10 15:42 ` [RFC][PATCH 7/7] qspinlock: Optimize for smaller NR_CPUS Peter Zijlstra
2014-03-11 10:45 ` [RFC][PATCH 0/7] locking: qspinlock Ingo Molnar
2014-03-11 11:02 ` Peter Zijlstra
2014-03-11 11:04 ` Ingo Molnar
2014-03-12 3:17 ` Waiman Long [this message]
2014-03-12 6:24 ` Peter Zijlstra
2014-03-12 15:32 ` Peter Zijlstra
2014-03-12 19:00 ` Waiman Long
2014-03-12 2:31 ` Dave Chinner
2014-03-12 3:11 ` Steven Rostedt
2014-03-12 4:26 ` Dave Chinner
2014-03-12 10:07 ` Steven Rostedt
2014-03-12 15:57 ` Peter Zijlstra
2014-03-12 16:06 ` Linus Torvalds
2014-03-12 16:19 ` Steven Rostedt
2014-03-12 16:23 ` Peter Zijlstra
2014-03-12 6:15 ` Peter Zijlstra
2014-03-12 23:48 ` Dave Chinner
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=531FD1DA.5010006@hp.com \
--to=waiman.long@hp.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=arnd@arndb.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=rostedt@goodmis.org \
--cc=torvalds@linux-foundation.org \
--cc=walken@google.com \
--cc=x86@kernel.org \
/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.