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.
712 bool bringup = st->state < target; in cpuhp_set_state() local
719 st->bringup = bringup; in cpuhp_set_state()
720 if (cpu_dying(cpu) != !bringup) in cpuhp_set_state()
721 set_cpu_dying(cpu, !bringup); in cpuhp_set_state()
730 bool bringup = !st->bringup; in cpuhp_reset_state() local
735 * Already rolling back. No need invert the bringup value or to change in cpuhp_reset_state()
748 if (st->bringup) in cpuhp_reset_state()
754 st->bringup = bringup; in cpuhp_reset_state()
755 if (cpu_dying(cpu) != !bringup) in cpuhp_reset_state()
756 set_cpu_dying(cpu, !bringup); in cpuhp_reset_state()
773 wait_for_ap_thread(st, st->bringup); in __cpuhp_kick_ap()
833 * Prevent irq alloc/free across the bringup. in cpuhp_bringup_ap()
870 * Prevent irq alloc/free across the bringup by acquiring the in bringup_cpu()
929 static bool cpuhp_next_state(bool bringup, in cpuhp_next_state() argument
935 if (bringup) { in cpuhp_next_state()
947 if (!cpuhp_step_empty(bringup, cpuhp_get_step(*state_to_run))) in cpuhp_next_state()
954 static int __cpuhp_invoke_callback_range(bool bringup, in __cpuhp_invoke_callback_range() argument
963 while (cpuhp_next_state(bringup, &state, st, target)) { in __cpuhp_invoke_callback_range()
966 err = cpuhp_invoke_callback(cpu, state, bringup, NULL, NULL); in __cpuhp_invoke_callback_range()
972 cpu, bringup ? "UP" : "DOWN", in __cpuhp_invoke_callback_range()
985 static inline int cpuhp_invoke_callback_range(bool bringup, in cpuhp_invoke_callback_range() argument
990 return __cpuhp_invoke_callback_range(bringup, cpu, st, target, false); in cpuhp_invoke_callback_range()
993 static inline void cpuhp_invoke_callback_range_nofail(bool bringup, in cpuhp_invoke_callback_range_nofail() argument
998 __cpuhp_invoke_callback_range(bringup, cpu, st, target, true); in cpuhp_invoke_callback_range_nofail()
1036 * The cpu hotplug threads manage the bringup and teardown of the cpus
1062 bool bringup = st->bringup; in cpuhp_thread_fun() local
1080 cpuhp_lock_acquire(bringup); in cpuhp_thread_fun()
1086 st->should_run = cpuhp_next_state(bringup, &state, st, st->target); in cpuhp_thread_fun()
1095 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); in cpuhp_thread_fun()
1103 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last); in cpuhp_thread_fun()
1117 cpuhp_lock_release(bringup); in cpuhp_thread_fun()
1121 complete_ap_thread(st, bringup); in cpuhp_thread_fun()
1126 cpuhp_invoke_ap_callback(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_invoke_ap_callback() argument
1146 return cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_invoke_ap_callback()
1152 st->bringup = bringup; in cpuhp_invoke_ap_callback()
1163 st->bringup = !bringup; in cpuhp_invoke_ap_callback()
1605 * online bringup to the hotplug thread.
1834 * On architectures which have enabled parallel bringup this invokes all BP
1837 * bringup code in parallel and then wait for the control CPU to release
1887 /* Try parallel bringup optimization if enabled */ in bringup_nonboot_cpus()
1891 /* Full per CPU serialized bringup */ in bringup_nonboot_cpus()
2129 * releases it for the complete bringup.
2132 .name = "cpu:bringup",
2139 * All-in-one CPU bringup state which includes the kick alive.
2142 .name = "cpu:bringup",
2351 static int cpuhp_issue_call(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_issue_call() argument
2361 if (cpuhp_step_empty(bringup, sp)) in cpuhp_issue_call()
2364 * The non AP bound callbacks can fail on bringup. On teardown in cpuhp_issue_call()
2369 ret = cpuhp_invoke_ap_callback(cpu, state, bringup, node); in cpuhp_issue_call()
2371 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_issue_call()
2373 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL); in cpuhp_issue_call()
2375 BUG_ON(ret && !bringup); in cpuhp_issue_call()