From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
torvalds@linux-foundation.org, konrad.wilk@oracle.com,
pbonzini@redhat.com, paulmck@linux.vnet.ibm.com,
waiman.long@hp.com, davej@redhat.com, oleg@redhat.com,
x86@kernel.org, jeremy@goop.org, paul.gortmaker@windriver.com,
ak@linux.intel.com, jasowang@redhat.com,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org,
xen-devel@lists.xenproject.org, riel@redhat.com,
borntraeger@de.ibm.com, akpm@linux-foundation.org,
a.ryabinin@samsung.com, sasha.levin@oracle.com,
dave@stgolabs.net
Subject: Re: [PATCH V3] x86 spinlock: Fix memory corruption on completing completions
Date: Thu, 12 Feb 2015 20:58:16 +0530 [thread overview]
Message-ID: <54DCC690.1070103@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150212150059.GA23123@twins.programming.kicks-ass.net>
On 02/12/2015 08:30 PM, Peter Zijlstra wrote:
> On Thu, Feb 12, 2015 at 05:17:27PM +0530, Raghavendra K T wrote:
[...]
>>
>> Linus suggested that we should not do any writes to lock after unlock(),
>> and we can move slowpath clearing to fastpath lock.
>>
>> So this patch implements the fix with:
>> 1. Moving slowpath flag to head (Oleg).
>> 2. use xadd to avoid read/write after unlock that checks the need for
>> unlock_kick (Linus).
>
> Maybe spend a few more words explaining these things; something like:
>
> Unlocked locks don't care about the slowpath flag; therefore we can keep
> it set after the last unlock, as long as we clear it again on the first
> (try)lock -- this removes the write after unlock.
Nit: I 'll reword a bit here since slowpath flag would result in
unnecessary kick but otherwise harmless IMO.
something like:
Unlocked locks don't care about the slowpath flag; therefore we can keep
it set after the last unlock, and clear it again on the first (try)lock.
-- this removes the write after unlock. note that keeping slowpath flag
would result in unnecessary kicks.
> By moving the slowpath flag from the tail to the head ticket we avoid
> the need to access both the head and tail tickets on unlock.
>
> We can further avoid the need for a read-after-release by using xadd;
> the prev head value will include the slowpath flag and indicate if we
> need to do PV kicking of suspended spinners -- on modern chips xadd
> isn't (much) more expensive than an add + load.
>
> Its 'obvious' now, but maybe not so much after we've all not looked at
> this for a few months.
>
Absolutely correct. Thanks Peter for the detailed and very helpful
writeup.
next prev parent reply other threads:[~2015-02-12 15:28 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-12 11:47 [PATCH V3] x86 spinlock: Fix memory corruption on completing completions Raghavendra K T
2015-02-12 11:47 ` Raghavendra K T
2015-02-12 11:47 ` Raghavendra K T
2015-02-12 13:37 ` Oleg Nesterov
2015-02-12 13:37 ` Oleg Nesterov
2015-02-12 13:37 ` Oleg Nesterov
2015-02-12 14:21 ` Raghavendra K T
2015-02-12 14:21 ` Raghavendra K T
2015-02-12 14:21 ` Raghavendra K T
2015-02-12 13:50 ` Oleg Nesterov
2015-02-12 13:50 ` Oleg Nesterov
2015-02-12 14:23 ` Raghavendra K T
2015-02-12 14:23 ` Raghavendra K T
2015-02-12 14:23 ` Raghavendra K T
2015-02-12 13:50 ` Oleg Nesterov
2015-02-12 14:02 ` Oleg Nesterov
2015-02-12 14:02 ` Oleg Nesterov
2015-02-12 14:02 ` Oleg Nesterov
2015-02-12 14:25 ` Raghavendra K T
2015-02-12 14:25 ` Raghavendra K T
2015-02-12 14:25 ` Raghavendra K T
2015-02-12 15:00 ` Peter Zijlstra
2015-02-12 15:00 ` Peter Zijlstra
2015-02-12 15:00 ` Peter Zijlstra
2015-02-12 15:28 ` Raghavendra K T
2015-02-12 15:28 ` Raghavendra K T
2015-02-12 15:28 ` Raghavendra K T [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-02-12 11:47 Raghavendra K T
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=54DCC690.1070103@linux.vnet.ibm.com \
--to=raghavendra.kt@linux.vnet.ibm.com \
--cc=a.ryabinin@samsung.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=borntraeger@de.ibm.com \
--cc=dave@stgolabs.net \
--cc=davej@redhat.com \
--cc=hpa@zytor.com \
--cc=jasowang@redhat.com \
--cc=jeremy@goop.org \
--cc=konrad.wilk@oracle.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=oleg@redhat.com \
--cc=paul.gortmaker@windriver.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=sasha.levin@oracle.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=waiman.long@hp.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.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.