Re: Segfault hidden in list.h

From: Dipankar Sarma (dipankar@in.ibm.com)
Date: Mon May 13 2002 - 01:33:23 EST


In article <Pine.LNX.4.44.0205121805220.15392-100000@home.transmeta.com> Linus Torvalds wrote:

> On Sun, 12 May 2002, David S. Miller wrote:
>> 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.

> 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

-- 
Dipankar Sarma  <dipankar@in.ibm.com> http://lse.sourceforge.net
Linux Technology Center, IBM Software Lab, Bangalore, India.
-
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/



This archive was generated by hypermail 2b29 : Tue May 14 2002 - 12:00:19 EST