Disposal of a misleading M_TRYWAIT

Sam Leffler sam at freebsd.org
Sun Mar 23 04:37:13 UTC 2008


Jeff Roberson wrote:
> On Sat, 22 Mar 2008, Matthew Dillon wrote:
> 
>>
>> :> Since the advent of MBUMA in FreeBSD (whatever), M_TRYWAIT has meant
>> :> M_WAITOK.  (The reason for M_TRYWAIT itself was that an original 
>> mbuf's
>> :> M_WAIT could return NULL.)
>> :>
>> :..
>> :
>> :This seems reasonable to me for exactly the reasons you stte.  We might
>> :simultaneously want to complete the M_DONTWAIT -> M_NOWAIT 
>> conversion.  And
>> :you can then remove the XXX comment in mbuf.h about phasing out 
>> M_TRYWAIT and
>> :M_DONTWAIT.  :-)
>> :
>> :Robert N M Watson
>>
>>    The real issue is the fact that both the kernel malloc and the mbuf
>>    allocation APIs are using the same M_ prefix for their flags.
>>
>>    We converted our mbuf allocator flags (aka M_DONTWAIT, M_TRYWAIT, 
>> M_WAIT)
>>    from M_ to MB_ and the code became a whole lot easier to read.
>>
>>    I would not recommend converting the mbuf allocator to actually *USE*
>>    kernel malloc flags.  The problem there is that you then have no clear
>>    delineation between M_ flags supported by malloc and M_ flags 
>> supported
>>    by the mbuf allocator.
> 
> They have been the same allocator for some time now.  It makes more 
> sense for them to use the same flags.

We made a decision a while back to not use malloc flags for mbuf routine 
arguments.  There are even assertions to verify it.  Changing the flag 
names however would be a painful change for little gain.

	Sam


More information about the freebsd-arch mailing list