DragonFly BSD
DragonFly kernel List (threaded) for 2003-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

slab allocator process report.

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 26 Aug 2003 15:19:28 -0700 (PDT)

    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

					Matthew Dillon 

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]