netdev
[Top] [All Lists]

Re: [PATCH] ipv4 skbuff locking scope

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: Re: [PATCH] ipv4 skbuff locking scope
From: Tom Leete <tleete@xxxxxxxxxxxx>
Date: Mon, 30 Oct 2000 22:18:07 -0500
Cc: linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
References: <39FDF518.A9F1204D@xxxxxxxxxxxx> <200010302224.OAA02266@xxxxxxxxxxxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
"David S. Miller" wrote:
> 
>    Date: Mon, 30 Oct 2000 17:24:24 -0500
>    From: Tom Leete <tleete@xxxxxxxxxxxx>
> 
>    This fixes tests of a socket buffer done without holding the
>    lock. tcp_data_wait() and wait_for_tcp_memory() both had
>    unguarded refs in their sleep conditionals.
> 
> These are not buggy at all, see the discussion which took place here
> over the past few days.

I'll post traces privately. It was my lockups that got Rick
interested.
 
> Look, if the sleep condition test "races" due to not holding the lock,
> the schedule() just returns because if the sleep condidion test passes
> then by definition this means we were also woken up, see?

Would you explain what is accomplished by toggling the lock
every time through? What breaks by not doing so?

> BTW, while we're on the topic of people not understanding the
> networking locking and proposing bogus patches, does anyone know who
> sent the bogon IP tunneling locking "fixes" to Linus behind my back?

Not me, but see below.
 
> They were crap too, and I had to revert them in test10-pre7.  It's
> another case of people just not understanding how the code works and
> thus that it is correct without any changes.

If it's perfect why can't I use it without locking up the
machine? BTW, I'm currently running my patch. I can now
flood ping 100000 packets in either direction. With
unmodified tcp that is a red switcher (reliably hard locks
all i/o including the serial console).

> Please send such fixes to me, and I'll set you straight with a
> description as to why your change is unnecessary :-)

Perhaps that's why somebody wants to bypass you.

Tom Leete

<Prev in Thread] Current Thread [Next in Thread>