Messages in this thread |  | | Subject | double lock on socket | Date | Tue, 28 May 1996 20:06:47 -0500 (CDT) | From | (Mike Castle) |
| |
Now, I know the double lock on socket message is supposed to not mean anything anymore... matter of fact, the message appears to be disabled in standard code....
But, a while back, I'd hacked linux/net/sock.h to make the lock_sock() not just print a double lock occured, but where the current and prev locks happened.
Not seen such a message in a while, but I finally did today with 1.99.7. I saw the following when I type into a VC that had an rlogin session that had been idle for a while [formatted to fit under 80 chars]
May 28 18:51:22 thune kernel: double lock on socket at tcp.c:1162, \ prev lock at tcp.c:1440
Now, in that file, line 1162 is in tcp_sendmsg() (just prior to the discussion of Nagle's rule); line 1440 is in tcp_recvmsg() (just prior to found_on_skb: label).
I must admit, I don't understand the networking code thoroughly. However, it appears that there is no obvious path from that point in tcp_recvmsg() to tcp_sendmsg() that does not go through release_sock().
I'm still a bit confused on how a process accessing the network, that has been paged out, could cause this scenario....
If that has been discussed before, a pointer to the message-id (and a working website that has them archived... last time i tried homer.ncm.com, it wasn't working), I'll reread the discussion myself.
mrc -- Mike Castle .-=NEXUS=-. Life is like a clock: You can work constantly mcastle@cs.umr.edu and be right all the time, or not work at all mcastle@umr.edu and be right at least twice a day. -- mrc We are all of us living in the shadow of Manhattan. -- Watchmen
|  |