Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: "Dmitry Adamushko" <dmitry.adamushko@xxxxxxxxx>
- Date: Sat, 23 Feb 2008 22:07:53 +0100
On 23/02/2008, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
On Sat, 23 Feb 2008, Dmitry Adamushko wrote:
>
> it's not a LOAD that escapes *out* of the region. It's a MODIFY that gets *in*:
Not with the smp_wmb(). That's the whole point.
Ie the patch I'm suggesting is sufficient is appended, and the point is
that any write before the critical region will be ordered wrt the critical
region because of the write barrier before the spinlock (which itself is a
write).
Yeah, good point!
(heh... I wouldn't dare to say this 'obvious thing' only to Anton
Blanchard who is "the only person who always 'have a point' by
definition" :-))
This is also why I mentioned that if you have a really odd architecure
that considers spinlocks to be "outside" the normal cache coherency
domain, that would be broken, but I cannot think of a single valid case of
that, and I consider it insane.
Yeah, some potential implementations come into my mind but, I guess,
they are as far away from real hardware as science-fiction from
science :-/
So how should we proceed with this issue?
let's use your patch and declare try_to_wake_up() a 'full' mb for the case:
MODIFY
try_to_wake_up
LOAD or MODIFY (that take place either after or inside try_to_wake_up())
so we'll fix (lots of) potentially problematic cases with a single shot.
and
LOAD
try_to_wake_up()
LOAD or MODIFY
is probably not that common so we don't care.
--
Best regards,
Dmitry Adamushko
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: Oleg Nesterov
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: Linus Torvalds
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: Oleg Nesterov
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: Linus Torvalds
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: Dmitry Adamushko
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- From: Linus Torvalds
- Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- Prev by Date: [ANNOUNCE] GIT 1.5.4.3
- Next by Date: Re: [PATCH] Make the kernel NTP code hand 64-bit *unsigned* values to do_div() [try #3]
- Previous by thread: [PATCH, 3rd resend] documentation: atomic_add_unless() doesn't imply mb() on failure
- Next by thread: Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree
- Index(es):
Relevant Pages
|