• Heiko Carstens's avatar
    s390/bitops: use generic find bit functions / reimplement _left variant · 746479cd
    Heiko Carstens authored
    Just like all other architectures we should use out-of-line find bit
    operations, since the inline variant bloat the size of the kernel image.
    And also like all other architecures we should only supply optimized
    variants of the __ffs, ffs, etc. primitives.
    
    Therefore this patch removes the inlined s390 find bit functions and uses
    the generic out-of-line variants instead.
    
    The optimization of the primitives follows with the next patch.
    
    With this patch also the functions find_first_bit_left() and
    find_next_bit_left() have been reimplemented, since logically, they are
    nothing else but a find_first_bit()/find_next_bit() implementation that
    use an inverted __fls() instead of __ffs().
    Also the restriction that these functions only work on machines which
    support the "flogr" instruction is gone now.
    
    This reduces the size of the kernel image (defconfig, -march=z9-109)
    by 144,482 bytes.
    Alone the size of the function build_sched_domains() gets reduced from
    7 KB to 3,5 KB.
    
    We also git rid of unused functions like find_first_bit_le()...
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    746479cd
Kconfig 19.2 KB