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