• Matt Fleming's avatar
    sh: unwinder: Fix memory leak and create our own kmem cache · fb3f3e7f
    Matt Fleming authored
    Plug a memory leak in dwarf_unwinder_dump() where we didn't free the
    memory that we had previously allocated for the DWARF frames and DWARF
    registers.
    
    Now is also a opportune time to implement our own mempool and kmem
    cache. It's a good idea to have a certain number of frame and register
    objects in reserve at all times, so that we are guaranteed to have our
    allocation satisfied even when memory is scarce. Since we have pools to
    allocate from we can implement the registers for each frame as a linked
    list as opposed to a sparsely populated array. Whilst it's true that the
    lookup time for a linked list is larger than for arrays, there's only
    usually a maximum of 8 registers per frame. So the overhead isn't that
    much of a concern.
    Signed-off-by: default avatarMatt Fleming <matt@console-pimps.org>
    fb3f3e7f
dwarf.h 9.12 KB