• Jason Low's avatar
    locking/mutexes: Delete the MUTEX_SHOW_NO_WAITER macro · 1e820c96
    Jason Low authored
    MUTEX_SHOW_NO_WAITER() is a macro which checks for if there are
    "no waiters" on a mutex by checking if the lock count is non-negative.
    Based on feedback from the discussion in the earlier version of this
    patchset, the macro is not very readable.
    
    Furthermore, checking lock->count isn't always the correct way to
    determine if there are "no waiters" on a mutex. For example, a negative
    count on a mutex really only means that there "potentially" are
    waiters. Likewise, there can be waiters on the mutex even if the count is
    non-negative. Thus, "MUTEX_SHOW_NO_WAITER" doesn't always do what the name
    of the macro suggests.
    
    So this patch deletes the MUTEX_SHOW_NO_WAITERS() macro, directly
    use atomic_read() instead of the macro, and adds comments which
    elaborate on how the extra atomic_read() checks can help reduce
    unnecessary xchg() operations.
    Signed-off-by: default avatarJason Low <jason.low2@hp.com>
    Acked-by: default avatarWaiman Long <Waiman.Long@hp.com>
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: akpm@linux-foundation.org
    Cc: tim.c.chen@linux.intel.com
    Cc: paulmck@linux.vnet.ibm.com
    Cc: rostedt@goodmis.org
    Cc: davidlohr@hp.com
    Cc: scott.norton@hp.com
    Cc: aswin@hp.com
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/r/1402511843-4721-3-git-send-email-jason.low2@hp.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    1e820c96
mutex.c 23.9 KB