x86/mm: Replace nodes_weight() with nodes_empty() where appropriate
authorYury Norov <yury.norov@gmail.com>
Thu, 10 Feb 2022 22:49:09 +0000 (14:49 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 10 Apr 2022 20:35:38 +0000 (22:35 +0200)
Various mm code calls nodes_weight() to check if any bit of a given
nodemask is set.

This can be done more efficiently with nodes_empty() because nodes_empty()
stops traversing the nodemask as soon as it finds first set bit, while
nodes_weight() counts all bits unconditionally.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20220210224933.379149-26-yury.norov@gmail.com
arch/x86/mm/amdtopology.c
arch/x86/mm/numa_emulation.c

index 058b2f3..b3ca7d2 100644 (file)
@@ -154,7 +154,7 @@ int __init amd_numa_init(void)
                node_set(nodeid, numa_nodes_parsed);
        }
 
-       if (!nodes_weight(numa_nodes_parsed))
+       if (nodes_empty(numa_nodes_parsed))
                return -ENOENT;
 
        /*
index 1a02b79..9a93053 100644 (file)
@@ -123,7 +123,7 @@ static int __init split_nodes_interleave(struct numa_meminfo *ei,
         * Continue to fill physical nodes with fake nodes until there is no
         * memory left on any of them.
         */
-       while (nodes_weight(physnode_mask)) {
+       while (!nodes_empty(physnode_mask)) {
                for_each_node_mask(i, physnode_mask) {
                        u64 dma32_end = PFN_PHYS(MAX_DMA32_PFN);
                        u64 start, limit, end;
@@ -270,7 +270,7 @@ static int __init split_nodes_size_interleave_uniform(struct numa_meminfo *ei,
         * Fill physical nodes with fake nodes of size until there is no memory
         * left on any of them.
         */
-       while (nodes_weight(physnode_mask)) {
+       while (!nodes_empty(physnode_mask)) {
                for_each_node_mask(i, physnode_mask) {
                        u64 dma32_end = PFN_PHYS(MAX_DMA32_PFN);
                        u64 start, limit, end;