• Andi Kleen's avatar
    kbuild: Stem compression for kallsyms · fccef669
    Andi Kleen authored
    This patch implements simple stem compression for the kallsyms symbol
    table. Each symbol has as first byte a count on how many characters
    are identical to the previous symbol. This compresses the often
    common repetive prefixes (like subsys_) fairly effectively.
    
    On a fairly full featured monolithic i386 kernel this saves about 60k in
    the kallsyms symbol table.
    
    The changes are very simple, so the 60k are not shabby.
    
    One visible change is that the caller of kallsyms_lookup has to pass in
    a buffer now, because it has to be modified. I added an arbitary
    127 character limit to it.
    
    Still >210k left in the symbol table unfortunately. Another idea would be to
    delta encode the addresses in 16bits (functions are all likely to be smaller
    than 64K).  This would especially help on 64bit hosts. Not done yet, however.
    
    No, before someone asks, I don't want to use zlib for that. Far too fragile
    during an oops and overkill too and it would require to link it into all
    kernels.
    fccef669
kallsyms.c 2.67 KB