2001-02-14 09:52:34

by Rusty Russell

[permalink] [raw]
Subject: Re: On "Unreliable Locking Guide" bug ?

In message <[email protected]> you write:
> Hi Paul,
>
> I am reviewing your "Unreliable Locking Guide" from linux 2.4 and just
> wonder about the
> section on "Avoiding Locks: Read and Write". The two lines of code
>
> new->next = i-> next;
> i->next = new;

Hi John,

Yes, there is of course a lock against other list
manipulations. I've attached a patch to make this clear..

Thanks!
Rusty.

--- linux-2.4.0-official/Documentation/DocBook/kernel-locking.tmpl.~1~ Sat Dec 30 09:07:19 2000
+++ linux-2.4.0-official/Documentation/DocBook/kernel-locking.tmpl Wed Feb 14 15:33:36 2001
@@ -720,7 +720,8 @@
halves without a lock. Depending on their exact timing, they
would either see the new element in the list with a valid
<structfield>next</structfield> pointer, or it would not be in the
- list yet.
+ list yet. A lock is still required against other CPUs inserting
+ or deleting from the list, of course.
</para>

<para>
--
Premature optmztion is rt of all evl. --DK