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.)