Skip to content

Commit 8251354

Browse files
committed
Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull smp/hotplug fixes from Thomas Gleixner: "This addresses the fallout of the new lockdep mechanism which covers completions in the CPU hotplug code. The lockdep splats are false positives, but there is no way to annotate that reliably. The solution is to split the completions for CPU up and down, which requires some reshuffling of the failure rollback handling as well" * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: smp/hotplug: Hotplug state fail injection smp/hotplug: Differentiate the AP completion between up and down smp/hotplug: Differentiate the AP-work lockdep class between up and down smp/hotplug: Callback vs state-machine consistency smp/hotplug: Rewrite AP state machine core smp/hotplug: Allow external multi-instance rollback smp/hotplug: Add state diagram
2 parents 7e103ac + 1db4948 commit 8251354

File tree

2 files changed

+384
-143
lines changed

2 files changed

+384
-143
lines changed

include/linux/cpuhotplug.h

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,27 @@
33

44
#include <linux/types.h>
55

6+
/*
7+
* CPU-up CPU-down
8+
*
9+
* BP AP BP AP
10+
*
11+
* OFFLINE OFFLINE
12+
* | ^
13+
* v |
14+
* BRINGUP_CPU->AP_OFFLINE BRINGUP_CPU <- AP_IDLE_DEAD (idle thread/play_dead)
15+
* | AP_OFFLINE
16+
* v (IRQ-off) ,---------------^
17+
* AP_ONLNE | (stop_machine)
18+
* | TEARDOWN_CPU <- AP_ONLINE_IDLE
19+
* | ^
20+
* v |
21+
* AP_ACTIVE AP_ACTIVE
22+
*/
23+
624
enum cpuhp_state {
7-
CPUHP_OFFLINE,
25+
CPUHP_INVALID = -1,
26+
CPUHP_OFFLINE = 0,
827
CPUHP_CREATE_THREADS,
928
CPUHP_PERF_PREPARE,
1029
CPUHP_PERF_X86_PREPARE,

0 commit comments

Comments
 (0)