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