• Liam R. Howlett's avatar
    maple_tree: mtree_range_walk() clean up · a3c63c8c
    Liam R. Howlett authored
    mtree_range_walk() needed to be updated to avoid checking if there was a
    pivot value.  On closer examination, the code could avoid setting min or
    max in certain scenarios.  The commit removes the extra check for
    pivot[offset] before setting max and only sets max when necessary.  It
    also only sets min if it is necessary by checking offset 0 prior to the
    loop (as it has always done).
    
    The commit also drops a dead node check since the end of the node will
    return the array size when the last slot is occupied (by a potential reuse
    in a dead node).  The data will be discarded later if the node is marked
    dead.
    
    Benchmarking these changes results in an increase in performance of 5.45%
    using the BENCH_WALK in the maple tree test code.
    
    Link: https://lkml.kernel.org/r/20231101171629.3612299-13-Liam.Howlett@oracle.comSigned-off-by: default avatarLiam R. Howlett <Liam.Howlett@oracle.com>
    Cc: Peng Zhang <zhangpeng.00@bytedance.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    a3c63c8c
maple_tree.c 190 KB