From: "tip-bot2 for Thomas Gleixner" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Mark Brown <broonie@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: smp/core] cpu/hotplug: Fix off by one in cpuhp_bringup_mask()
Date: Tue, 23 May 2023 16:13:57 -0000 [thread overview]
Message-ID: <168485843734.404.16847199234383553669.tip-bot2@tip-bot2> (raw)
In-Reply-To: <87wn10ufj9.ffs@tglx>
The following commit has been merged into the smp/core branch of tip:
Commit-ID: 06c6796e0304234da65e70577f354cb194086521
Gitweb: https://git.kernel.org/tip/06c6796e0304234da65e70577f354cb194086521
Author: Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Tue, 23 May 2023 01:12:26 +02:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Tue, 23 May 2023 18:06:40 +02:00
cpu/hotplug: Fix off by one in cpuhp_bringup_mask()
cpuhp_bringup_mask() iterates over a cpumask and starts all present CPUs up
to a caller provided upper limit.
The limit variable is decremented and checked for 0 before invoking
cpu_up(), which is obviously off by one and prevents the bringup of the
last CPU when the limit is equal to the number of present CPUs.
Move the decrement and check after the cpu_up() invocation.
Fixes: 18415f33e2ac ("cpu/hotplug: Allow "parallel" bringup up to CPUHP_BP_KICK_AP_STATE")
Reported-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/87wn10ufj9.ffs@tglx
---
kernel/cpu.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 005f863..88a7ede 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -1770,9 +1770,6 @@ static void __init cpuhp_bringup_mask(const struct cpumask *mask, unsigned int n
for_each_cpu(cpu, mask) {
struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
- if (!--ncpus)
- break;
-
if (cpu_up(cpu, target) && can_rollback_cpu(st)) {
/*
* If this failed then cpu_up() might have only
@@ -1781,6 +1778,9 @@ static void __init cpuhp_bringup_mask(const struct cpumask *mask, unsigned int n
*/
WARN_ON(cpuhp_invoke_callback_range(false, cpu, st, CPUHP_OFFLINE));
}
+
+ if (!--ncpus)
+ break;
}
}
next prev parent reply other threads:[~2023-05-23 16:14 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 21:06 [patch V4 00/37] cpu/hotplug, x86: Reworked parallel CPU bringup Thomas Gleixner
2023-05-12 21:06 ` [patch V4 01/37] x86/smpboot: Cleanup topology_phys_to_logical_pkg()/die() Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 02/37] cpu/hotplug: Mark arch_disable_smp_support() and bringup_nonboot_cpus() __init Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 03/37] x86/smpboot: Avoid pointless delay calibration if TSC is synchronized Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 04/37] x86/smpboot: Rename start_cpu0() to soft_restart_cpu() Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-06-12 23:45 ` [patch V4 04/37] " Philippe Mathieu-Daudé
2023-05-12 21:07 ` [patch V4 05/37] x86/topology: Remove CPU0 hotplug option Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 06/37] x86/smpboot: Remove the CPU0 hotplug kludge Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 07/37] x86/smpboot: Restrict soft_restart_cpu() to SEV Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-06-12 23:46 ` [patch V4 07/37] " Philippe Mathieu-Daudé
2023-05-12 21:07 ` [patch V4 08/37] x86/smpboot: Remove unnecessary barrier() Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 09/37] x86/smpboot: Split up native_cpu_up() into separate phases and document them Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for David Woodhouse
2023-05-12 21:07 ` [patch V4 10/37] x86/smpboot: Get rid of cpu_init_secondary() Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-06-12 23:49 ` [patch V4 10/37] " Philippe Mathieu-Daudé
2023-05-12 21:07 ` [patch V4 11/37] x86/cpu/cacheinfo: Remove cpu_callout_mask dependency Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 12/37] x86/smpboot: Move synchronization masks to SMP boot code Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 13/37] x86/smpboot: Make TSC synchronization function call based Thomas Gleixner
2023-05-16 9:10 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 14/37] x86/smpboot: Remove cpu_callin_mask Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 15/37] cpu/hotplug: Rework sparse_irq locking in bringup_cpu() Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 16/37] x86/smpboot: Remove wait for cpu_online() Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 17/37] x86/xen/smp_pv: Remove wait for CPU online Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 18/37] x86/xen/hvm: Get rid of DEAD_FROZEN handling Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 19/37] cpu/hotplug: Add CPU state tracking and synchronization Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 20/37] x86/smpboot: Switch to hotplug core state synchronization Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 21/37] cpu/hotplug: Remove cpu_report_state() and related unused cruft Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 22/37] ARM: smp: Switch to hotplug core state synchronization Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 23/37] arm64: " Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 24/37] csky/smp: " Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 25/37] MIPS: SMP_CPS: " Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 26/37] parisc: " Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 27/37] riscv: " Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 28/37] cpu/hotplug: Remove unused state functions Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 29/37] cpu/hotplug: Reset task stack state in _cpu_up() Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for David Woodhouse
2023-05-12 21:07 ` [patch V4 30/37] cpu/hotplug: Provide a split up CPUHP_BRINGUP mechanism Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 31/37] x86/smpboot: Enable split CPU startup Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 32/37] x86/apic: Provide cpu_primary_thread mask Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 33/37] cpu/hotplug: Allow "parallel" bringup up to CPUHP_BP_KICK_AP_STATE Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-22 19:45 ` [patch V4 33/37] " Mark Brown
2023-05-22 21:04 ` Thomas Gleixner
2023-05-22 22:27 ` Mark Brown
2023-05-22 23:12 ` Thomas Gleixner
2023-05-23 10:19 ` Mark Brown
2023-05-23 16:13 ` tip-bot2 for Thomas Gleixner [this message]
2023-05-12 21:07 ` [patch V4 34/37] x86/apic: Save the APIC virtual base address Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 35/37] x86/smpboot: Implement a bit spinlock to protect the realmode stack Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-12 21:07 ` [patch V4 36/37] x86/smpboot: Support parallel startup of secondary CPUs Thomas Gleixner
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for David Woodhouse
2023-05-19 16:28 ` [patch V4 36/37] " Jeffrey Hugo
2023-05-19 16:57 ` Andrew Cooper
2023-05-19 17:44 ` Jeffrey Hugo
2023-05-12 21:07 ` [patch V4 37/37] x86/smpboot/64: Implement arch_cpuhp_init_parallel_bringup() and enable it Thomas Gleixner
2023-05-15 12:00 ` Peter Zijlstra
2023-05-16 9:09 ` [tip: smp/core] " tip-bot2 for Thomas Gleixner
2023-05-13 18:32 ` [patch V4 00/37] cpu/hotplug, x86: Reworked parallel CPU bringup Oleksandr Natalenko
2023-05-13 21:00 ` Helge Deller
2023-05-14 21:48 ` Guilherme G. Piccoli
2023-05-22 10:57 ` [PATCH] x86/apic: Fix use of X{,2}APIC_ENABLE in asm with older binutils Andrew Cooper
2023-05-22 11:17 ` Russell King (Oracle)
2023-05-22 12:12 ` [tip: smp/core] " tip-bot2 for Andrew Cooper
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=168485843734.404.16847199234383553669.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®