slab allocator process report.

Matthew Dillon dillon at apollo.backplane.com
Tue Aug 26 15:20:02 PDT 2003


    I am making very good progress.   There have been a bunch of minor
    gotchas which are not documented in malloc()... things like malloc()
    being expected to return non-NULL when 0 bytes are allocated (ahc driver
    fails otherwise), and malloc() being expected to return power-of-2
    aligned data for power-of-2 sized requests (the tty code fails in weird
    ways otherwise).  For the moment I am trying to make the slab allocator
    work the same way that existing code expects malloc to.

    I also had to track down a number of recursive deadlocks which occur
    when kmem_map is removed.  Basically it came down to kernel_map 
    needing a vm_map_entry in order to add new data to kernel_map, zalloc
    running out and then recursing back into kernel_map. 

    I have successfully accomplished a buildworld on a SMP box with
    kmem_map removed and the slab allocator in place, so I know I am getting
    close.  I expect I will be able to commit it all later this evening.

    I still have to track down an ISA bounce buffer allocation problem
    (occurs due to the large slab zone size I am using), and a case where
    the lockmgr is being called from a FAST interrupt.  I can deal with these
    after the commit since the old malloc allocator will still be the default
    build.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Kernel mailing list