[Fwd: Re: 3 connections as one]
Matthew Dillon
dillon at apollo.backplane.com
Thu Jun 26 20:12:48 UTC 2008
:what can I say without degenerating into a dogfight?
:The code is designed to copy with failure to allocate.. the error will
:propogate up..
:
:not much is allocated once you have it set up.
Well, not really trying to start a fight but unless the initialization
code that sets this stuff up retries on ENOMEM, don't you risk load
on the machine creating a situation where M_NOWAIT can return NULL
under normal operation and cause a one-time initialization to basically
fail? That doesn't sound good to me.
I've noticed the same thing with many driver's softc allocations.
A lot of them use M_NOWAIT but clearly do not handle a temporary
allocation failure. They may not crash, but they won't initialize
either. The user expectation is for the driver to only fail to
initialize if something serious has occured.
DragonFly is a bit more sensitive then FreeBSD. Maybe M_NOWAIT
allocations on FreeBSD have no chance of failing unless the system
is actually out of memory. But on DFly anything that would cause
a thread switch during the allocation will fail if M_NOWAIT is specified.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the freebsd-hackers
mailing list