* [PATCH] smpboot: correctly update number of booted cores
@ 2018-02-21 20:50 Samuel Neves
2018-02-22 8:07 ` Dou Liyang
2018-02-23 8:29 ` [tip:x86/urgent] x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations tip-bot for Samuel Neves
0 siblings, 2 replies; 3+ messages in thread
From: Samuel Neves @ 2018-02-21 20:50 UTC (permalink / raw)
To: tglx, mingo, hpa, x86, jgross, douly.fnst, luto, prarit, ak,
vkuznets, linux-kernel
Cc: Samuel Neves
Without this fix, /proc/cpuinfo will display an incorrect amount
of CPU cores, after bringing them offline and online again, as
exemplified below:
$ cat /proc/cpuinfo | grep cores
cpu cores : 4
cpu cores : 8
cpu cores : 8
cpu cores : 20
cpu cores : 4
cpu cores : 3
cpu cores : 2
cpu cores : 2
This patch fixes this by always zeroing the booted_cores variable
upon turning off a logical CPU.
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
---
arch/x86/kernel/smpboot.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 9eee25d07586..ff99e2b6fc54 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1437,6 +1437,7 @@ static void remove_siblinginfo(int cpu)
cpumask_clear(topology_sibling_cpumask(cpu));
cpumask_clear(topology_core_cpumask(cpu));
c->cpu_core_id = 0;
+ c->booted_cores = 0;
cpumask_clear_cpu(cpu, cpu_sibling_setup_mask);
recompute_smt_state();
}
--
2.14.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] smpboot: correctly update number of booted cores
2018-02-21 20:50 [PATCH] smpboot: correctly update number of booted cores Samuel Neves
@ 2018-02-22 8:07 ` Dou Liyang
2018-02-23 8:29 ` [tip:x86/urgent] x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations tip-bot for Samuel Neves
1 sibling, 0 replies; 3+ messages in thread
From: Dou Liyang @ 2018-02-22 8:07 UTC (permalink / raw)
To: Samuel Neves, tglx, mingo, hpa, x86, jgross, luto, prarit, ak,
vkuznets, linux-kernel
At 02/22/2018 04:50 AM, Samuel Neves wrote:
> Without this fix, /proc/cpuinfo will display an incorrect amount
> of CPU cores, after bringing them offline and online again, as
> exemplified below:
>
> $ cat /proc/cpuinfo | grep cores
> cpu cores : 4
> cpu cores : 8
> cpu cores : 8
> cpu cores : 20
> cpu cores : 4
> cpu cores : 3
> cpu cores : 2
> cpu cores : 2
>
> This patch fixes this by always zeroing the booted_cores variable
> upon turning off a logical CPU.
>
> Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
Yes, tested it in Qemu with 15 hot-pluggable CPUs, like below
...
-smp 1,maxcpus=16,sockets=2,cores=4,threads=2
...
When a new CPU bringups a new core, for each core in package, Linux
increments the booted_cores for this new cpu in set_cpu_sibling_map().
Due to the uncleared booted_cores, this incorrect number of CPU cores
will be shown.
Tested-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
> ---
> arch/x86/kernel/smpboot.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index 9eee25d07586..ff99e2b6fc54 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -1437,6 +1437,7 @@ static void remove_siblinginfo(int cpu)
> cpumask_clear(topology_sibling_cpumask(cpu));
> cpumask_clear(topology_core_cpumask(cpu));
> c->cpu_core_id = 0;
> + c->booted_cores = 0;
> cpumask_clear_cpu(cpu, cpu_sibling_setup_mask);
> recompute_smt_state();
> }
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [tip:x86/urgent] x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations
2018-02-21 20:50 [PATCH] smpboot: correctly update number of booted cores Samuel Neves
2018-02-22 8:07 ` Dou Liyang
@ 2018-02-23 8:29 ` tip-bot for Samuel Neves
1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Samuel Neves @ 2018-02-23 8:29 UTC (permalink / raw)
To: linux-tip-commits
Cc: douly.fnst, sneves, peterz, mingo, hpa, torvalds, linux-kernel, tglx
Commit-ID: 4596749339e06dc7a424fc08a15eded850ed78b7
Gitweb: https://git.kernel.org/tip/4596749339e06dc7a424fc08a15eded850ed78b7
Author: Samuel Neves <sneves@dei.uc.pt>
AuthorDate: Wed, 21 Feb 2018 20:50:36 +0000
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Fri, 23 Feb 2018 08:47:47 +0100
x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations
Without this fix, /proc/cpuinfo will display an incorrect amount
of CPU cores, after bringing them offline and online again, as
exemplified below:
$ cat /proc/cpuinfo | grep cores
cpu cores : 4
cpu cores : 8
cpu cores : 8
cpu cores : 20
cpu cores : 4
cpu cores : 3
cpu cores : 2
cpu cores : 2
This patch fixes this by always zeroing the booted_cores variable
upon turning off a logical CPU.
Tested-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: jgross@suse.com
Cc: luto@kernel.org
Cc: prarit@redhat.com
Cc: vkuznets@redhat.com
Link: http://lkml.kernel.org/r/20180221205036.5244-1-sneves@dei.uc.pt
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/kernel/smpboot.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 9eee25d07586..ff99e2b6fc54 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1437,6 +1437,7 @@ static void remove_siblinginfo(int cpu)
cpumask_clear(topology_sibling_cpumask(cpu));
cpumask_clear(topology_core_cpumask(cpu));
c->cpu_core_id = 0;
+ c->booted_cores = 0;
cpumask_clear_cpu(cpu, cpu_sibling_setup_mask);
recompute_smt_state();
}
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-02-23 8:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-21 20:50 [PATCH] smpboot: correctly update number of booted cores Samuel Neves
2018-02-22 8:07 ` Dou Liyang
2018-02-23 8:29 ` [tip:x86/urgent] x86/topology: Update the 'cpu cores' field in /proc/cpuinfo correctly across CPU hotplug operations tip-bot for Samuel Neves
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.