Lines Matching full:bringup
56 * @bringup: Single callback bringup or teardown selector
75 bool bringup;
101 static inline void cpuhp_lock_acquire(bool bringup)
103 lock_map_acquire(bringup ? &cpuhp_state_up_map : &cpuhp_state_down_map);
106 static inline void cpuhp_lock_release(bool bringup)
108 lock_map_release(bringup ? &cpuhp_state_up_map : &cpuhp_state_down_map);
112 static inline void cpuhp_lock_acquire(bool bringup) { }
113 static inline void cpuhp_lock_release(bool bringup) { }
122 * @cant_stop: Bringup/teardown can't be stopped at this step
152 static bool cpuhp_step_empty(bool bringup, struct cpuhp_step *step)
154 return bringup ? !step->startup.single : !step->teardown.single;
161 * @bringup: True if the bringup callback should be invoked
170 bool bringup, struct hlist_node *node,
184 if (cpuhp_step_empty(bringup, step)) {
191 cb = bringup ? step->startup.single : step->teardown.single;
198 cbm = bringup ? step->startup.multi : step->teardown.multi;
232 cbm = !bringup ? step->startup.multi : step->teardown.multi;
261 static inline void wait_for_ap_thread(struct cpuhp_cpu_state *st, bool bringup)
263 struct completion *done = bringup ? &st->done_up : &st->done_down;
267 static inline void complete_ap_thread(struct cpuhp_cpu_state *st, bool bringup)
269 struct completion *done = bringup ? &st->done_up : &st->done_down;
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;
719 st->bringup = bringup;
720 if (cpu_dying(cpu) != !bringup)
721 set_cpu_dying(cpu, !bringup);
730 bool bringup = !st->bringup;
735 * Already rolling back. No need invert the bringup value or to change
748 if (st->bringup)
754 st->bringup = bringup;
755 if (cpu_dying(cpu) != !bringup)
756 set_cpu_dying(cpu, !bringup);
773 wait_for_ap_thread(st, st->bringup);
833 * Prevent irq alloc/free across the bringup.
870 * Prevent irq alloc/free across the bringup by acquiring the
928 static bool cpuhp_next_state(bool bringup,
934 if (bringup) {
946 if (!cpuhp_step_empty(bringup, cpuhp_get_step(*state_to_run)))
953 static int __cpuhp_invoke_callback_range(bool bringup,
962 while (cpuhp_next_state(bringup, &state, st, target)) {
965 err = cpuhp_invoke_callback(cpu, state, bringup, NULL, NULL);
971 cpu, bringup ? "UP" : "DOWN",
984 static inline int cpuhp_invoke_callback_range(bool bringup,
989 return __cpuhp_invoke_callback_range(bringup, cpu, st, target, false);
992 static inline void cpuhp_invoke_callback_range_nofail(bool bringup,
997 __cpuhp_invoke_callback_range(bringup, cpu, st, target, true);
1035 * The cpu hotplug threads manage the bringup and teardown of the cpus
1061 bool bringup = st->bringup;
1079 cpuhp_lock_acquire(bringup);
1085 st->should_run = cpuhp_next_state(bringup, &state, st, st->target);
1094 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last);
1102 st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last);
1116 cpuhp_lock_release(bringup);
1120 complete_ap_thread(st, bringup);
1125 cpuhp_invoke_ap_callback(int cpu, enum cpuhp_state state, bool bringup,
1145 return cpuhp_invoke_callback(cpu, state, bringup, node, NULL);
1151 st->bringup = bringup;
1162 st->bringup = !bringup;
1609 * online bringup to the hotplug thread.
1838 * On architectures which have enabled parallel bringup this invokes all BP
1841 * bringup code in parallel and then wait for the control CPU to release
1891 /* Try parallel bringup optimization if enabled */
1895 /* Full per CPU serialized bringup */
2133 * releases it for the complete bringup.
2136 .name = "cpu:bringup",
2143 * All-in-one CPU bringup state which includes the kick alive.
2146 .name = "cpu:bringup",
2355 static int cpuhp_issue_call(int cpu, enum cpuhp_state state, bool bringup,
2365 if (cpuhp_step_empty(bringup, sp))
2368 * The non AP bound callbacks can fail on bringup. On teardown
2373 ret = cpuhp_invoke_ap_callback(cpu, state, bringup, node);
2375 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL);
2377 ret = cpuhp_invoke_callback(cpu, state, bringup, node, NULL);
2379 BUG_ON(ret && !bringup);