Witness warning with SCTP
Randall Stewart
rrs at cisco.com
Wed Jan 10 06:45:44 PST 2007
Robert Watson wrote:
>
> On Tue, 9 Jan 2007, John Baldwin wrote:
>
>> Either that or use an sx lock to close the pcb alloc race instead and
>> don't hold mutexes while calling hashinit().
>
> I think this is a good point -- I've generally been restructuring PCB
> init functions so that they perform allocation up front before acquiring
> locks in order to reduce lock contention on the table locks, which are
> global and acquired in many other paths. This tends to simplify error
> handling also. I'm not sure how well that applies in this case,
> however. Certainly, we want to optimize for successful handling, since
> malloc(9) failure is very unusual and occurs only in very exceptional
> (and unfortunate) cases. A more likely failure is the exhaustion of the
> zone limit on the pcb zone, which gates the overall allocation of memory
> for the socket type, and should be the first memory type allocated when
> setting up pcbs for this reason.
There are checks way up front on getting the pcb memory...
I don't think I would want to convert these to sx_locks since
according to the manual page :
"
Shared/exclusive locks are used to protect data that are read far more
often than they are written. Mutexes are inherently more efficient than
shared/exclusive locks, so shared/exclusive locks should be used pru-
dently.
"
And the lock in question is used a lot... (protecting the pcb)..
Hmm.. maybe I can restructure things to pre-alloc the memory
before the locks..
Let me see..
R
>
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>
--
Randall Stewart
NSSTG - Cisco Systems Inc.
803-345-0369 <or> 803-317-4952 (cell)
More information about the freebsd-current
mailing list