Subject: Re: mbuf external storage sharing
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-net
Date: 10/04/2004 18:39:35
In message <E1CEZtW-0008Je-00@smeg.dsg.stanford.edu>,
Jonathan Stone writes:

[...]

A quick clarification:

>I beleive (though I may be wrong) that the FreeBSD-5 work has had
>considerable input from the BSDi code; and considerable subsequent
>retuning. For example: 

FWIW, the items listed below are `subsequent retuning', not input from
the BSDi codebase:

>* splitting send- and receive-specific flags from   so_state into separate
>  socket-level and a new per-sb, flags-related field sb_state;
>
>* separate locked and unlocked versions of sbappend(), so that
>  (for example) an so[rw]akeup followed by an sbappend() can grab the
>  lock once, perform   both append and wakeup operations, then unlock.

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/ lists the
relevant parties under tcp_{input,output}.c and friends: Sam Leffler,
Robert Watson, and others I don't know so well.

I've watched progress here on and off the last year or so. The changes
seem well-explained and well thought-out. I think it would be a great
mistake for anyone to embark on adding finer-grained locking to
NetBSD's network stack without looking very, very carefully at the
evolution of these changes.

(And, probably, at DragonflyBSD as well; though I don't know that code
nearly so well.)