lkml.org 
[lkml]   [2006]   [Apr]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Profile likely/unlikely macros
Daniel Walker wrote:

>On Tue, 2006-04-25 at 20:11 +1000, Nick Piggin wrote:
>
>
>>I guess it is so it can be used in NMIs and interrupts without turning
>>interrupts off (so is somewhat lightweight).
>>
>>But please Daniel, just use spinlocks and trylock. This is buggy because
>>it doesn't get the required release consistency correct.
>>
>
>
>To use spinlock we would need to used the __raw_ types . As Hua
>explained all of the vanilla spinlock calls use the unlikely macro. The
>result is that we end up using atomic operations. So using them directly
>seems like the cleanest method .
>

Ah, I see. Then you should be OK with either your current scheme, or
Andrew's suggestion, so long as you have a memory barrier before the
unlock (eg. smp_mb__before_clear_bit()).

>
>I'm not exactly sure what you mean by "release consistency" ?
>

Without a barrier, the stores to the linked list may be visible to another
CPU after the store that unlocks the atomic_t. Ie. the critical section can
leak out of the lock.

--

Send instant messages to your online friends http://au.messenger.yahoo.com

-
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: 2006-04-26 03:13    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site