Re: + kthread-add-a-missing-memory-barrier-to-kthread_stop.patch added to -mm tree



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/



Relevant Pages

  • Re: Change My Document Location and Maintain Security of Profile
    ... To modify the OS load, all you need to do is add one line to your unattended ... it will result in a fatal install error. ... MS-MVP Windows XP/ Windows Smart Display ...
    (microsoft.public.windowsxp.security_admin)
  • Re: FAQ?
    ... My vendor sends the custom SLX ... > You can't modify image that came with your device. ... >> thin clients. ... >> customize it and load it on a thin client device. ...
    (microsoft.public.windowsxp.embedded)
  • Re: How do I have two user controls with one code-behind file?
    ... Modify Ferret.ascx.cs class to derive from this ... Modify @Control directive in both user controls so that it additionally ... I have a user control which I am trying to load dynamically, ... "Unable to cast object of type 'ASP.Ferret' to type 'Ferret'" on the ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Fastest way to highlight printable ASCII?
    ... With that many state changes, ... You want to modify the high half, ... This means that you cannot simply use a plain XLAT, so you need more instructions and instruction bytes, plus the table load itself. ...
    (comp.lang.asm.x86)