Re: Socket locking

David S. Miller (davem@jenolan.rutgers.edu)
Sat, 4 Oct 1997 14:26:12 -0400


From: alan@lxorguk.ukuu.org.uk (Alan Cox)
Date: Sat, 4 Oct 1997 18:05:22 +0100 (BST)

The socket code is designed to be mostly multithreaded on a
uniprocessor. Since day 1 its been the case that two processes can
share a socket and one might page fault while copying sk_buff
data. If we are going to thread this further then for most
protocols we are looking at the same routines for a lot of the
work. Ultimately (probably post 2.2) most of the protocol
processing will be in the user context and a couple of kernel
threads.

Here is something I learned from talking to people who have done this
before: "Parallelism is 10 times more important for the in-user
context processing than for the packet soft interrupt processing".
So, this is where we should concentrate at least our initial
fine-granularity efforts.

Later,
David "Sparc" Miller
davem@caip.rutgers.edu