Lines Matching full:bringup

56  * @bringup:	Single callback bringup or teardown selector
75 bool bringup; member
101 static inline void cpuhp_lock_acquire(bool bringup) in cpuhp_lock_acquire() argument
103 lock_map_acquire(bringup ? &cpuhp_state_up_map : &cpuhp_state_down_map); in cpuhp_lock_acquire()
106 static inline void cpuhp_lock_release(bool bringup) in cpuhp_lock_release() argument
108 lock_map_release(bringup ? &cpuhp_state_up_map : &cpuhp_state_down_map); in cpuhp_lock_release()
112 static inline void cpuhp_lock_acquire(bool bringup) { } in cpuhp_lock_acquire() argument
113 static inline void cpuhp_lock_release(bool bringup) { } in cpuhp_lock_release() argument
122 * @cant_stop: Bringup/teardown can't be stopped at this step
152 static bool cpuhp_step_empty(bool bringup, struct cpuhp_step *step) in cpuhp_step_empty() argument
154 return bringup ? !step->startup.single : !step->teardown.single; in cpuhp_step_empty()
161 * @bringup: True if the bringup callback should be invoked
170 bool bringup, struct hlist_node *node, in cpuhp_invoke_callback() argument
184 if (cpuhp_step_empty(bringup, step)) { in cpuhp_invoke_callback()
191 cb = bringup ? step->startup.single : step->teardown.single; in cpuhp_invoke_callback()
198 cbm = bringup ? step->startup.multi : step->teardown.multi; in cpuhp_invoke_callback()
232 cbm = !bringup ? step->startup.multi : step->teardown.multi; in cpuhp_invoke_callback()
261 static inline void wait_for_ap_thread(struct cpuhp_cpu_state *st, bool bringup) in wait_for_ap_thread() argument
263 struct completion *done = bringup ? &st->done_up : &st->done_down; in wait_for_ap_thread()
267 static inline void complete_ap_thread(struct cpuhp_cpu_state *st, bool bringup) in complete_ap_thread() argument
269 struct completion *done = bringup ? &st->done_up : &st->done_down; in complete_ap_thread()
293 * cpuhp_ap_update_sync_state - Update synchronization state during bringup/teardown
433 * Early CPU bringup synchronization point. Cannot use cpuhp_state::done_up
434 * because the AP cannot issue complete() so early in the bringup.
713 bool bringup = st->state < target; in cpuhp_set_state() local
720 st->bringup = bringup; in cpuhp_set_state()
721 if (cpu_dying(cpu) != !bringup) in cpuhp_set_state()
722 set_cpu_dying(cpu, !bringup); in cpuhp_set_state()
731 bool bringup = !st->bringup; in cpuhp_reset_state() local
736 * Already rolling back. No need invert the bringup value or to change in cpuhp_reset_state()
749 if (st->bringup) in cpuhp_reset_state()
755 st->bringup = bringup; in cpuhp_reset_state()
756 if (cpu_dying(cpu) != !bringup) in cpuhp_reset_state()
757 set_cpu_dying(cpu, !bringup); in cpuhp_reset_state()
774 wait_for_ap_thread(st, st->bringup); in __cpuhp_kick_ap()
834 * Prevent irq alloc/free across the bringup. in cpuhp_bringup_ap()
871 * Prevent irq alloc/free across the bringup by acquiring the in bringup_cpu()
930 static bool cpuhp_next_state(bool bringup, in cpuhp_next_state() argument
936 if (bringup) { in cpuhp_next_state()
948 if (!cpuhp_step_empty(bringup, cpuhp_get_step(*state_to_run))) in cpuhp_next_state()
955 static int __cpuhp_invoke_callback_range(bool bringup, in __cpuhp_invoke_callback_range() argument
964 while (cpuhp_next_state(bringup, &state, st, target)) { in __cpuhp_invoke_callback_range()
967 err = cpuhp_invoke_callback(cpu, state, bringup, NULL, NULL); in __cpuhp_invoke_callback_range()
973 cpu, bringup ? "UP" : "DOWN", in __cpuhp_invoke_callback_range()
986 static inline int cpuhp_invoke_callback_range(bool bringup, in cpuhp_invoke_callback_range() argument
991 return __cpuhp_invoke_callback_range(bringup, cpu, st, target, false); in cpuhp_invoke_callback_range()
994 static inline void cpuhp_invoke_callback_range_nofail(bool bringup, in cpuhp_invoke_callback_range_nofail() argument
999 __cpuhp_invoke_callback_range(bringup, cpu, st, target, true); in cpuhp_invoke_callback_range_nofail()
1037 * The cpu hotplug threads manage the bringup and teardown of the cpus
1063 bool bringup = st->bringup; in cpuhp_thread_fun() local
1081 cpuhp_lock_acquire(bringup); in cpuhp_thread_fun()
1087 st->should_run = cpuhp_next_state(bringup, &state, st, st->target); in cpuhp_thread_fun()
1096 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); in cpuhp_thread_fun()
1104 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); in cpuhp_thread_fun()
1118 cpuhp_lock_release(bringup); in cpuhp_thread_fun()
1122 complete_ap_thread(st, bringup); in cpuhp_thread_fun()
1127 cpuhp_invoke_ap_callback(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_invoke_ap_callback() argument
1147 return cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_invoke_ap_callback()
1153 st->bringup = bringup; in cpuhp_invoke_ap_callback()
1164 st->bringup = !bringup; in cpuhp_invoke_ap_callback()
1606 * online bringup to the hotplug thread.
1835 * On architectures which have enabled parallel bringup this invokes all BP
1838 * bringup code in parallel and then wait for the control CPU to release
1888 /* Try parallel bringup optimization if enabled */ in bringup_nonboot_cpus()
1892 /* Full per CPU serialized bringup */ in bringup_nonboot_cpus()
2130 * releases it for the complete bringup.
2133 .name = "cpu:bringup",
2140 * All-in-one CPU bringup state which includes the kick alive.
2143 .name = "cpu:bringup",
2352 static int cpuhp_issue_call(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_issue_call() argument
2362 if (cpuhp_step_empty(bringup, sp)) in cpuhp_issue_call()
2365 * The non AP bound callbacks can fail on bringup. On teardown in cpuhp_issue_call()
2370 ret = cpuhp_invoke_ap_callback(cpu, state, bringup, node); in cpuhp_issue_call()
2372 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_issue_call()
2374 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_issue_call()
2376 BUG_ON(ret && !bringup); in cpuhp_issue_call()