• Ilya Dryomov's avatar
    crush: don't normalize input of crush_ln iteratively · 74a52938
    Ilya Dryomov authored
    Use __builtin_clz() supported by GCC and Clang to figure out
    how many bits we should shift instead of shifting by a bit
    in a loop until the value gets normalized. Improves performance
    of this function by up to 3x in worst-case scenario and overall
    straw2 performance by ~10%.
    
    Reflects ceph.git commit 110de33ca497d94fc4737e5154d3fe781fa84a0a.
    Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
    74a52938
mapper.c 23 KB