From: Manfred Spraul <manfred@colorfullife.com>
To: Jack Steiner <steiner@sgi.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] - Fix memory ordering problem in wake_futex()
Date: Fri, 23 Dec 2005 23:52:16 +0100 [thread overview]
Message-ID: <43AC7FA0.7090205@colorfullife.com> (raw)
In-Reply-To: <43AC78CF.9090407@colorfullife.com>
Manfred Spraul wrote:
> Jack wrote:
>
>> On IA64, locks are released using a "st.rel" instruction. This
>> ensures that
>> preceding "stores" are visible before the lock is released but does
>> NOT prevent
>> a "store" that follows the "st.rel" from becoming visible before the
>> "st.rel".
>> The result is that the task that owns the futex_q continues prematurely.
>> The failure I saw is the task that owned the futex_q resumed
>> prematurely and
>> was context-switch off of the cpu. The task's switch_stack occupied
>> the same
>> space of the futex_q. The store to q->lock_ptr overwrote the
>> ar.bspstore in the
>> switch_stack.
>>
I'm stupid - first I was certains that your description is wrong, I
started a long mail, but the I confused myself and accepted your
description.
Your description can't be correct: The store to q->lock_ptr can't
overwrite ar.bspstore. As long as q->lock_ptr is not NULL, unqueue_me
will spin and prevent a race. But the other race seems to be possible_
q->lock_ptr is set to NULL early, and then the spin_unlock_irqrestore()
in __wake_up could overwrite ar.bspstore.
next prev parent reply other threads:[~2005-12-23 22:52 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-23 22:23 [PATCH] - Fix memory ordering problem in wake_futex() Manfred Spraul
2005-12-23 22:52 ` Manfred Spraul [this message]
2005-12-24 3:45 ` Jack Steiner
2005-12-25 16:02 ` Manfred Spraul
-- strict thread matches above, loose matches on Subject: below --
2005-12-23 16:38 Jack Steiner
2005-12-23 16:38 ` Jack Steiner
2005-12-23 17:05 ` Joe Seigh
2005-12-23 20:48 ` Olof Johansson
2005-12-23 20:48 ` Olof Johansson
2005-12-23 21:32 ` Jack Steiner
2005-12-23 21:32 ` Jack Steiner
2005-12-23 21:59 ` Olof Johansson
2005-12-23 21:59 ` Olof Johansson
2005-12-23 23:48 ` Robin Holt
2005-12-23 23:48 ` Robin Holt
2005-12-24 13:45 ` Jack Steiner
2005-12-24 13:45 ` Jack Steiner
2005-12-24 18:13 ` Olof Johansson
2005-12-24 18:13 ` Olof Johansson
2005-12-27 16:30 ` Jack Steiner
2005-12-27 16:30 ` Jack Steiner
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=43AC7FA0.7090205@colorfullife.com \
--to=manfred@colorfullife.com \
--cc=linux-kernel@vger.kernel.org \
--cc=steiner@sgi.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.