Issue 201. Never return NULL from kmem-alloc to rule out this simple case.
For Issue 201. Also check that mutex allocation was successful, or panic.
Add sysctl to monitor total mutex usage
Add MUTEX_LEAK conditional to maintain list of mutex allocations and
dump contents on SPL.kext unload.
Build a list with each mutex_init and remove with mutex_destroy, to
dump a list of mutex allocations that have not been destroyed on unload.
WIP: Further progress kmem, export kstats for the caches. Improve logic around memory release. Alter bmalloc to expose the slice_allocator for use by others, and use to implement "slabs" in kmem.
WIP: tidy up a couple of the cache stats, still more to understand and fixup.
Add more stats for monitoring bmalloc.
Make sure that the slice allocators owned by the kmem caches are garbage collected.
WIP: work towards have memory smoothly reaped from caches.
WIP: Unstub vmem implementation. Wire into kmem, just basic initialisation at this stage.
WIP: merge in Illumos kmem implementation.
WIP:Change Illumos macros to use builtin_offsetof rather and pointer arithmetic.
WIP: try to initialise vmem.c with realistic values - from XNU.
WIP: Use k_m_a to return page aligned memory - bmalloc does not do this.
WIP: fix missing symbol
WIP: dont use uninitialised arena as parent
Solaris has a requirement that desctructor can always be called, but
this is incompatible with Darwin as we attempt to free the mutex.
WIP: Convert string functions back to kmem_alloc/kmem_free. Remove remnant garbage collection obsoleted by new kmem code.
WIP: ooops, remove erant "s" in code.