From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Michal Hocko <mhocko@kernel.org>,
linux-kernel@vger.kernel.org, rt@linutronix.de,
Andrew Morton <akpm@linux-foundation.org>,
Vlastimil Babka <vbabka@suse.cz>,
Mel Gorman <mgorman@techsingularity.net>,
Johannes Weiner <hannes@cmpxchg.org>,
linux-mm@kvack.org
Subject: [PATCH 08/22 v2] mm/vmstat: Avoid on each online CPU loops
Date: Tue, 29 Nov 2016 15:51:14 +0100 [thread overview]
Message-ID: <20161129145113.fn3lw5aazjjvdrr3@linutronix.de> (raw)
In-Reply-To: <alpine.DEB.2.20.1611291505340.4358@nanos>
Both iterations over online cpus can be replaced by the proper node
specific functions.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: linux-mm@kvack.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
v1…v2: take into account that we may have online nodes with no CPUs.
mm/vmstat.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 0b63ffb5c407..5152cd1c490f 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1720,19 +1720,21 @@ static void __init start_shepherd_timer(void)
static void __init init_cpu_node_state(void)
{
- int cpu;
+ int node;
- for_each_online_cpu(cpu)
- node_set_state(cpu_to_node(cpu), N_CPU);
+ for_each_online_node(node) {
+ if (cpumask_weight(cpumask_of_node(node)) > 0)
+ node_set_state(node, N_CPU);
+ }
}
static void vmstat_cpu_dead(int node)
{
- int cpu;
+ const struct cpumask *node_cpus;
- for_each_online_cpu(cpu)
- if (cpu_to_node(cpu) == node)
- return;
+ node_cpus = cpumask_of_node(node);
+ if (cpumask_weight(node_cpus) > 0)
+ return;
node_clear_state(node, N_CPU);
}
--
2.10.2
next prev parent reply other threads:[~2016-11-29 14:52 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-26 23:13 cpu hotplug: convert more drivers (batch #6 and last) Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 01/22] cpufreq/acpi-cpufreq: Convert to hotplug state machine Sebastian Andrzej Siewior
2016-11-28 5:15 ` Viresh Kumar
2016-11-28 9:49 ` Sebastian Andrzej Siewior
2016-11-28 9:51 ` [PATCH 01/22 v2] " Sebastian Andrzej Siewior
2016-11-28 9:54 ` Viresh Kumar
2016-11-28 12:46 ` Rafael J. Wysocki
2016-11-26 23:13 ` [PATCH 02/22] cpufreq/acpi-cpufreq: drop rdmsr_on_cpus() usage Sebastian Andrzej Siewior
2016-11-28 9:52 ` [PATCH 02/22 v2] " Sebastian Andrzej Siewior
2016-11-28 9:54 ` Viresh Kumar
2016-11-26 23:13 ` [PATCH 03/22] idle/intel: Remove superfluous SMP fuction call Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 04/22] idle/intel: Convert to hotplug state machine Sebastian Andrzej Siewior
2016-11-28 17:29 ` Thomas Gleixner
2016-11-29 9:40 ` Sebastian Andrzej Siewior
2016-11-29 9:51 ` [PATCH 04/22 v2] " Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 05/22] oprofile/nmi timer: " Sebastian Andrzej Siewior
2016-12-02 0:09 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 06/22] tracing/rb: " Sebastian Andrzej Siewior
2016-12-02 0:10 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-12-07 11:15 ` [linux-next] tracing/rb: NULL pointer dereference at trace_rb_cpu_prepare() Tetsuo Handa
2016-12-07 13:31 ` [PATCH] tracing/rb: init the CPU mask on allocation Sebastian Andrzej Siewior
2016-12-07 13:43 ` [tip:smp/hotplug] tracing/rb: Init " tip-bot for Sebastian Andrzej Siewior
2016-12-07 14:33 ` [PATCH] tracing/rb: init " Tetsuo Handa
2016-11-26 23:13 ` [PATCH 07/22] mm/vmstat: Drop get_online_cpus() from init_cpu_node_state/vmstat_cpu_dead() Sebastian Andrzej Siewior
2016-11-28 9:24 ` Michal Hocko
2016-12-02 0:10 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 08/22] mm/vmstat: Avoid on each online CPU loops Sebastian Andrzej Siewior
2016-11-28 9:28 ` Michal Hocko
2016-11-29 14:08 ` Thomas Gleixner
2016-11-29 14:44 ` Michal Hocko
2016-11-29 14:51 ` Sebastian Andrzej Siewior [this message]
2016-11-29 15:20 ` [PATCH 08/22 v2] " Michal Hocko
2016-12-02 0:11 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 09/22] mm/vmstat: Convert to hotplug state machine Sebastian Andrzej Siewior
2016-11-29 14:52 ` [PATCH 09/22 v2] " Sebastian Andrzej Siewior
2016-12-02 0:11 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 10/22] mm/zsmalloc: " Sebastian Andrzej Siewior
2016-12-02 0:12 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 11/22] mm/zswap: Convert dst-mem " Sebastian Andrzej Siewior
2016-12-02 0:12 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 12/22] mm/zswap: Convert pool " Sebastian Andrzej Siewior
2016-12-02 0:13 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 13/22] iommu/vt-d: Convert " Sebastian Andrzej Siewior
2016-12-02 0:13 ` [tip:smp/hotplug] " tip-bot for Anna-Maria Gleixner
2016-11-26 23:13 ` [PATCH 14/22] mm/compaction: " Sebastian Andrzej Siewior
2016-12-02 0:14 ` [tip:smp/hotplug] " tip-bot for Anna-Maria Gleixner
2016-11-26 23:13 ` [PATCH 15/22] arm64/cpuinfo: Make hotplug notifier symmetric Sebastian Andrzej Siewior
2016-11-29 17:22 ` Suzuki K Poulose
2016-12-02 0:14 ` [tip:smp/hotplug] " tip-bot for Anna-Maria Gleixner
2016-11-26 23:13 ` [PATCH 16/22] arm64/cpuinfo: Convert to hotplug state machine Sebastian Andrzej Siewior
2016-11-29 17:26 ` Suzuki K Poulose
2016-12-02 0:15 ` [tip:smp/hotplug] " tip-bot for Anna-Maria Gleixner
2016-11-26 23:13 ` [PATCH 17/22] KVM/PPC/Book3S HV: " Sebastian Andrzej Siewior
2016-12-02 0:15 ` [tip:smp/hotplug] " tip-bot for Anna-Maria Gleixner
2016-11-26 23:13 ` [PATCH 18/22] zram: " Sebastian Andrzej Siewior
2016-12-02 0:16 ` [tip:smp/hotplug] " tip-bot for Anna-Maria Gleixner
2016-11-26 23:13 ` [PATCH 19/22] soc/fsl/qbman: " Sebastian Andrzej Siewior
2016-12-02 0:16 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 20/22] " Sebastian Andrzej Siewior
2016-12-02 0:17 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 21/22] staging/lustre/libcfs: " Sebastian Andrzej Siewior
2016-12-02 10:18 ` [PATCH 21/22 v2] " Sebastian Andrzej Siewior
2016-12-02 10:42 ` Greg Kroah-Hartman
2016-12-02 11:00 ` [PATCH 21/22 v3] " Sebastian Andrzej Siewior
2016-11-26 23:13 ` [PATCH 22/22] Remove obsolete cpu hotplug register / unregister functions Sebastian Andrzej Siewior
2016-12-21 19:19 [patch 00/10] cpu/hotplug: Final cleanup Thomas Gleixner
2016-12-21 19:19 ` [patch 01/10] ARM: imx: mmcd: Fix broken cpu hotplug handling Thomas Gleixner
2016-12-22 20:18 ` [tip:smp/urgent] ARM/imx/mmcd: " tip-bot for Thomas Gleixner
2016-12-25 10:02 ` tip-bot for Thomas Gleixner
2016-12-21 19:19 ` [patch 02/10] cpu/hotplug: Prevent overwriting of callbacks Thomas Gleixner
2016-12-22 11:07 ` Thomas Gleixner
2016-12-26 23:04 ` ojab
2016-12-26 23:12 ` ojab
2016-12-22 20:21 ` [tip:smp/urgent] " tip-bot for Thomas Gleixner
2016-12-25 10:04 ` tip-bot for Thomas Gleixner
2016-12-21 19:19 ` [patch 03/10] scsi/bnx2fc: Convert to hotplug state machine Thomas Gleixner
2016-12-22 20:21 ` [tip:smp/urgent] " tip-bot for Sebastian Andrzej Siewior
2016-12-25 10:05 ` tip-bot for Sebastian Andrzej Siewior
2016-12-21 19:19 ` [patch 04/10] scsi/bnx2i: " Thomas Gleixner
2016-12-22 20:22 ` [tip:smp/urgent] " tip-bot for Sebastian Andrzej Siewior
2016-12-25 10:05 ` tip-bot for Sebastian Andrzej Siewior
2016-12-21 19:19 ` [patch 05/10] staging/lustre/libcfs: " Thomas Gleixner
2016-12-22 20:22 ` [tip:smp/urgent] " tip-bot for Anna-Maria Gleixner
2016-12-25 10:06 ` tip-bot for Anna-Maria Gleixner
2016-12-21 19:19 ` [patch 06/10] cpu/hotplug: Remove obsolete cpu hotplug register/unregister functions Thomas Gleixner
2016-12-22 20:23 ` [tip:smp/urgent] " tip-bot for Thomas Gleixner
2016-12-25 10:06 ` tip-bot for Thomas Gleixner
2016-12-21 19:19 ` [patch 07/10] cpu/hotplug: Cleanup state names Thomas Gleixner
2016-12-22 20:23 ` [tip:smp/urgent] " tip-bot for Thomas Gleixner
2016-12-25 10:07 ` tip-bot for Thomas Gleixner
2016-12-21 19:19 ` [patch 08/10] coresight: etm3/4x: Consolidate hotplug state space Thomas Gleixner
2016-12-22 16:30 ` Mathieu Poirier
2016-12-22 20:24 ` [tip:smp/urgent] coresight/etm3/4x: " tip-bot for Thomas Gleixner
2016-12-25 10:07 ` tip-bot for Thomas Gleixner
2016-12-21 19:19 ` [patch 09/10] irqchip/gic: " Thomas Gleixner
2016-12-22 20:24 ` [tip:smp/urgent] " tip-bot for Thomas Gleixner
2016-12-25 10:08 ` tip-bot for Thomas Gleixner
2016-12-21 19:19 ` [patch 10/10] irqchip/armada-xp: " Thomas Gleixner
2016-12-21 20:22 ` Thomas Petazzoni
2016-12-21 20:27 ` Thomas Gleixner
2016-12-22 20:25 ` [tip:smp/urgent] " tip-bot for Thomas Gleixner
2016-12-25 10:08 ` tip-bot for Thomas Gleixner
2016-12-22 17:59 ` [patch 00/10] cpu/hotplug: Final cleanup Sam Ravnborg
2016-12-27 11:17 ` Thomas Gleixner
2016-12-27 19:41 ` Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161129145113.fn3lw5aazjjvdrr3@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=rt@linutronix.de \
--cc=tglx@linutronix.de \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).