• Eric Dumazet's avatar
    fixdep: use hash table instead of a single array · 8af27e1d
    Eric Dumazet authored
    I noticed fixdep uses ~2% of cpu time in kernel build, in function
    use_config()
    
    fixdep spends a lot of cpu cycles in linear searches in its internal
    string array. With about 400 stored strings per dep file, this begins to
    be noticeable.
    
    Convert fixdep to use a hash table.
    
    kbuild results on my x86_64 allmodconfig
    
    Before patch :
    
    real	10m30.414s
    user	61m51.456s
    sys	8m28.200s
    
    real	10m12.334s
    user	61m50.236s
    sys	8m30.448s
    
    real	10m42.947s
    user	61m50.028s
    sys	8m32.380s
    
    After:
    
    real	10m8.180s
    user	61m22.506s
    sys	8m32.384s
    
    real	10m35.039s
    user	61m21.654s
    sys	8m32.212s
    
    real	10m14.487s
    user	61m23.498s
    sys	8m32.312s
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
    8af27e1d
fixdep.c 9.77 KB