Skip to contentSkip to conversation

Segfault hidden in list.h

DISCUSSION Dipankar Sarma 1 participant 1 message May 13, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 6 lines · In article <[email protected]> Linus…
Quoted 2 lines · David S. Miller

However, if the list manipulation had some memory barriers added to it...

That would just make _those_ much slower, with some very doubtful end results.

I agree. In most cases, list.h macros will be used under lock and putting barriers there will penalize the common case.

Quoted 8 lines

Show me numbers, and show me readable source, and show me a proof that the memory ordering actually works, and I may consider lockless algorithms worthwhile. As it is, they are damn fragile and require more care that I personally care to expect out of 99.9% of all programmers.
And I'm sure as hell not going to put any lockless stuff in functions meant for "normal human consumption". If we create list macros like that, they had better be called "lockless_list_add_be_damn_careful_about_it()" rather than "list_add()".

It isn't really necessary to to put memeory barriers in list macros for use with RCU. In many data structures, list traversal is done in only one direction and therefore memory barriers can be put after list_add() or such macros. If indeed traversal is more complicated than that, it might not be a good idea to do lockfree traversal in the first place.

As for readable lockless algorithms, sure they exist. See
http://prdownloads.sourceforge.net/lse/rt_rcu-2.5.3-1.patch.

Thanks

Signature · 2 lines
Dipankar Sarma  <[email protected]> http://lse.sourceforge.net
Linux Technology Center, IBM Software Lab, Bangalore, India.