[CHECKER] bugs in FreeBSD

Matthew Dillon dillon at apollo.backplane.com
Sun Jan 18 14:57:20 PST 2004


:    M_NOWAIT is being used pretty much as if it were M_WAITOK|M_USE_RESERVE
:    most of the time, especially considering the side effect situation when
:    such allocations fail.  I don't think M_WAITOK|M_USE_RESERVE would be 
:    any less reliable, actually.  It looks like the whole paradigm has 
:    shifted away from the original definition of M_NOWAIT to something that
:    is more like a cross between M_NOWAIT, M_WAITOK, and M_USE_RESERVE.

    oops, don't take that literally.  M_USE_RESERVE means something else.
    M_NOWAIT is triggering VM_ALLOC_INTERRUPT which is allowed to dig into 
    the free (vm) page reserve.

    Another interesting thing I've found, and correct me if I'm wrong,
    but it looks like when the 5.x slab allocator allocates M_NOWAIT memory
    that newly allocated zone becomes available for normal M_WAITOK
    allocations as well.  This is something DFly's slab allocator does
    too (I have a big XXX comment for it), and the 4.x allocator too I think.

    That could create an exhaustion issue.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>


More information about the freebsd-scsi mailing list