separating out memory checks from INVARIANTS

Jeff Roberson jroberson at chesapeake.net
Sun Mar 16 06:12:14 UTC 2008


On Sat, 15 Mar 2008, Kip Macy wrote:

> On Sat, Mar 15, 2008 at 10:54 PM, Jeff Roberson
> <jroberson at chesapeake.net> wrote:
>>
>> On Sat, 15 Mar 2008, Kip Macy wrote:
>>
>> > I find that the serialization of memory allocation frequently hides
>> > race conditions. I would like to, at the very least, add an option to
>> > disable the memory checks if not make the memory checks a completely
>> > separate option. My knee jerk reaction to avoiding bikesheds is to
>> > simply add it to my own tree and forget about it. However, this has
>> > come up often enough that I feel that it warrants consideration.
>> >
>> >
>> > Thoughts?
>>
>>  One other option that I have frequently considered is to convert UMA from
>>  using an array of bytes to using bitfields to represent the free space in
>>  a slab.  Then you could use atomics to update the required information.
>>  It'd be a bit of work.  Maybe a good SoC? :)
>
>
> Would it make it possible to do memory allocation without holding a
> lock in the M_NOWAIT case?

Yes, when I originally wrote the code it didn't require a lock because I 
relied on byte writes being atomic.  However, we had platforms for which 
that wasn't true. (alpha).  It may be that it's safe not to lock even now 
on x86/amd64.  I don't know the specifics of the memory architectures on 
powerpc, arm, mips, etc. though.

Jeff

>
> -Kip
>


More information about the freebsd-arch mailing list