lkml.org 
[lkml]   [2021]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 11/17] lib/nodemask: add num_node_state_eq()
    Date
    Kernel code calls num_node_state() to compare number of nodes with a given
    number. The underlying code calls bitmap_weight(), and we can do it more
    efficiently with num_node_state_eq because conditional nodes_weight may
    stop traversing the nodemask earlier, as soon as condition is met.

    Signed-off-by: Yury Norov <yury.norov@gmail.com>
    ---
    include/linux/nodemask.h | 5 +++++
    mm/page_alloc.c | 2 +-
    2 files changed, 6 insertions(+), 1 deletion(-)

    diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h
    index 197598e075e9..c5014dbf3cce 100644
    --- a/include/linux/nodemask.h
    +++ b/include/linux/nodemask.h
    @@ -466,6 +466,11 @@ static inline int num_node_state(enum node_states state)
    return nodes_weight(node_states[state]);
    }

    +static inline int num_node_state_eq(enum node_states state, int num)
    +{
    + return nodes_weight_eq(node_states[state], num);
    +}
    +
    #define for_each_node_state(__node, __state) \
    for_each_node_mask((__node), node_states[__state])

    diff --git a/mm/page_alloc.c b/mm/page_alloc.c
    index edfd6c81af82..71f5652828b8 100644
    --- a/mm/page_alloc.c
    +++ b/mm/page_alloc.c
    @@ -8323,7 +8323,7 @@ void __init page_alloc_init(void)
    int ret;

    #ifdef CONFIG_NUMA
    - if (num_node_state(N_MEMORY) == 1)
    + if (num_node_state_eq(N_MEMORY, 1))
    hashdist = 0;
    #endif

    --
    2.30.2
    \
     
     \ /
      Last update: 2021-12-18 22:22    [W:2.287 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site