lkml.org 
[lkml]   [2006]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Document Linux's memory barriers [try #4]


    On Fri, 10 Mar 2006, Michael Buesch wrote:
    >
    > So what about:
    >
    > #define spin_lock_mmio(lock) spin_lock(lock)
    > #define spin_unlock_mmio(lock) do { spin_unlock(lock); mmiowb(); } while (0)

    You need to put the mmiowb() inside the spinlock.

    Yes, that is painful. But the point being that if it's outside, then when
    somebody else gets the lock, the previous lock-owners MMIO stores may
    still be in flight, which is what you didn't want in the first place.

    Anyway, no need to make a new name for it, since you might as well just
    use the mmiowb() explicitly. At least until this has been shown to be a
    really common pattern (it clearly isn't, right now ;)

    Linus
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-11-18 23:46    [W:2.233 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site