lkml.org 
[lkml]   [2012]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: ARM: why smp_mb() is not needed in the "__mutex_fastpath_lock" and "__mutex_fastpath_unlock" functions
    On Fri, Jul 13, 2012 at 10:10:52AM +0100, shan kang wrote:
    > For example, in the following scenario, Process2 may get the wrong value;
    > Process1:
    > mutex_lock(&lock);
    > write data; (store operation)
    > mutex_unlock(&lock);
    >
    > Process2:
    > mutex_lock(&lock);
    > read data; (load operation)
    > mutex_unlock(&lock);

    Yes, it looks like we can screw things up in the uncontended case (where
    nobody blocks on the mutex). We could add an smp_mb after the lock operation
    and another one before the unlock, but I'm tempted just to use
    asm-generic/mutex-dec.h instead. The latter approach will subtly change the
    current behaviour, so I'll post a patch when I'm happy with it.

    Curious: did you find this by inspection or did you observe it going wrong?

    Cheers,

    Will


    \
     
     \ /
      Last update: 2012-07-13 12:21    [W:5.475 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site