Recursion in the UVA

Evan Geller thespin at
Mon May 10 19:09:47 UTC 2010

I'm a bit confused how recursion in the UVA works. vm_map_entries are
allocated from a vm_map_entry zone, but if the vm_map_entry slabs are
full and it needs to allocate a vm_map_entry to satisfy the mapping,
there would seem to be a starvation. I also see a uk_recurse field per
keg that gets increased when calling back in... but I don't exactly
understand what goes on after the NULL is returned. I'm also a bit
confused about the difference between a keg, a zone, and a slab... the
classic definition of the slab is the per-object cache with slabs...
I'm having trouble understanding what the 3 level structure gets you.

Evan Geller
thespin at

More information about the freebsd-hackers mailing list