• Home
  • Raw
  • Download

Lines Matching refs:state

49 	enum cpuhp_state	state;  member
103 static bool cpuhp_is_ap_state(enum cpuhp_state state) in cpuhp_is_ap_state() argument
109 return state > CPUHP_BRINGUP_CPU && state != CPUHP_TEARDOWN_CPU; in cpuhp_is_ap_state()
112 static struct cpuhp_step *cpuhp_get_step(enum cpuhp_state state) in cpuhp_get_step() argument
116 sp = cpuhp_is_ap_state(state) ? cpuhp_ap_states : cpuhp_bp_states; in cpuhp_get_step()
117 return sp + state; in cpuhp_get_step()
128 static int cpuhp_invoke_callback(unsigned int cpu, enum cpuhp_state state, in cpuhp_invoke_callback() argument
132 struct cpuhp_step *step = cpuhp_get_step(state); in cpuhp_invoke_callback()
141 trace_cpuhp_enter(cpu, st->target, state, cb); in cpuhp_invoke_callback()
143 trace_cpuhp_exit(cpu, st->state, state, ret); in cpuhp_invoke_callback()
152 trace_cpuhp_multi_enter(cpu, st->target, state, cbm, node); in cpuhp_invoke_callback()
154 trace_cpuhp_exit(cpu, st->state, state, ret); in cpuhp_invoke_callback()
161 trace_cpuhp_multi_enter(cpu, st->target, state, cbm, node); in cpuhp_invoke_callback()
163 trace_cpuhp_exit(cpu, st->state, state, ret); in cpuhp_invoke_callback()
469 for (st->state++; st->state < st->target; st->state++) { in undo_cpu_down()
470 struct cpuhp_step *step = cpuhp_get_step(st->state); in undo_cpu_down()
473 cpuhp_invoke_callback(cpu, st->state, true, NULL); in undo_cpu_down()
480 enum cpuhp_state prev_state = st->state; in cpuhp_down_callbacks()
483 for (; st->state > target; st->state--) { in cpuhp_down_callbacks()
484 ret = cpuhp_invoke_callback(cpu, st->state, false, NULL); in cpuhp_down_callbacks()
496 for (st->state--; st->state > st->target; st->state--) { in undo_cpu_up()
497 struct cpuhp_step *step = cpuhp_get_step(st->state); in undo_cpu_up()
500 cpuhp_invoke_callback(cpu, st->state, false, NULL); in undo_cpu_up()
507 enum cpuhp_state prev_state = st->state; in cpuhp_up_callbacks()
510 while (st->state < target) { in cpuhp_up_callbacks()
511 st->state++; in cpuhp_up_callbacks()
512 ret = cpuhp_invoke_callback(cpu, st->state, true, NULL); in cpuhp_up_callbacks()
585 BUG_ON(st->state < CPUHP_AP_ONLINE_IDLE); in cpuhp_thread_fun()
596 BUG_ON(st->state < CPUHP_AP_ONLINE_IDLE); in cpuhp_thread_fun()
599 if (st->state < st->target) in cpuhp_thread_fun()
601 else if (st->state > st->target) in cpuhp_thread_fun()
611 cpuhp_invoke_ap_callback(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_invoke_ap_callback() argument
627 return cpuhp_invoke_callback(cpu, state, bringup, node); in cpuhp_invoke_ap_callback()
629 st->cb_state = state; in cpuhp_invoke_ap_callback()
662 enum cpuhp_state state = st->state; in cpuhp_kick_ap_work() local
664 trace_cpuhp_enter(cpu, st->target, state, cpuhp_kick_ap_work); in cpuhp_kick_ap_work()
669 trace_cpuhp_exit(cpu, st->state, state, st->result); in cpuhp_kick_ap_work()
765 p->comm, task_pid_nr(p), dead_cpu, p->state, p->flags); in check_for_tasks()
800 WARN_ON(st->state != CPUHP_TEARDOWN_CPU); in take_cpu_down()
801 st->state--; in take_cpu_down()
803 for (; st->state > target; st->state--) in take_cpu_down()
804 cpuhp_invoke_callback(cpu, st->state, false, NULL); in take_cpu_down()
849 BUG_ON(st->state != CPUHP_AP_IDLE_DEAD); in takedown_cpu()
880 BUG_ON(st->state != CPUHP_AP_OFFLINE); in cpuhp_report_idle_dead()
882 st->state = CPUHP_AP_IDLE_DEAD; in cpuhp_report_idle_dead()
917 prev_state = st->state; in _cpu_down()
923 if (st->state > CPUHP_TEARDOWN_CPU) { in _cpu_down()
936 if (st->state > CPUHP_TEARDOWN_CPU) in _cpu_down()
944 if (ret && st->state > CPUHP_TEARDOWN_CPU && st->state < prev_state) { in _cpu_down()
950 hasdied = prev_state != st->state && st->state == CPUHP_OFFLINE; in _cpu_down()
996 while (st->state < target) { in notify_cpu_starting()
997 st->state++; in notify_cpu_starting()
998 cpuhp_invoke_callback(cpu, st->state, true, NULL); in notify_cpu_starting()
1007 void cpuhp_online_idle(enum cpuhp_state state) in cpuhp_online_idle() argument
1012 if (state != CPUHP_AP_ONLINE_IDLE) in cpuhp_online_idle()
1015 st->state = CPUHP_AP_ONLINE_IDLE; in cpuhp_online_idle()
1037 if (st->state >= target) in _cpu_up()
1040 if (st->state == CPUHP_OFFLINE) { in _cpu_up()
1056 if (st->state > CPUHP_BRINGUP_CPU) { in _cpu_up()
1450 static int cpuhp_cb_check(enum cpuhp_state state) in cpuhp_cb_check() argument
1452 if (state <= CPUHP_OFFLINE || state >= CPUHP_ONLINE) in cpuhp_cb_check()
1457 static void cpuhp_store_callbacks(enum cpuhp_state state, in cpuhp_store_callbacks() argument
1466 sp = cpuhp_get_step(state); in cpuhp_store_callbacks()
1474 static void *cpuhp_get_teardown_cb(enum cpuhp_state state) in cpuhp_get_teardown_cb() argument
1476 return cpuhp_get_step(state)->teardown.single; in cpuhp_get_teardown_cb()
1483 static int cpuhp_issue_call(int cpu, enum cpuhp_state state, bool bringup, in cpuhp_issue_call() argument
1486 struct cpuhp_step *sp = cpuhp_get_step(state); in cpuhp_issue_call()
1497 if (cpuhp_is_ap_state(state)) in cpuhp_issue_call()
1498 ret = cpuhp_invoke_ap_callback(cpu, state, bringup, node); in cpuhp_issue_call()
1500 ret = cpuhp_invoke_callback(cpu, state, bringup, node); in cpuhp_issue_call()
1502 ret = cpuhp_invoke_callback(cpu, state, bringup, node); in cpuhp_issue_call()
1513 static void cpuhp_rollback_install(int failedcpu, enum cpuhp_state state, in cpuhp_rollback_install() argument
1521 int cpustate = st->state; in cpuhp_rollback_install()
1527 if (cpustate >= state) in cpuhp_rollback_install()
1528 cpuhp_issue_call(cpu, state, false, node); in cpuhp_rollback_install()
1537 static int cpuhp_reserve_state(enum cpuhp_state state) in cpuhp_reserve_state() argument
1552 int __cpuhp_state_add_instance(enum cpuhp_state state, struct hlist_node *node, in __cpuhp_state_add_instance() argument
1559 sp = cpuhp_get_step(state); in __cpuhp_state_add_instance()
1575 int cpustate = st->state; in __cpuhp_state_add_instance()
1577 if (cpustate < state) in __cpuhp_state_add_instance()
1580 ret = cpuhp_issue_call(cpu, state, true, node); in __cpuhp_state_add_instance()
1583 cpuhp_rollback_install(cpu, state, node); in __cpuhp_state_add_instance()
1608 int __cpuhp_setup_state(enum cpuhp_state state, in __cpuhp_setup_state() argument
1617 if (cpuhp_cb_check(state) || !name) in __cpuhp_setup_state()
1624 if (state == CPUHP_AP_ONLINE_DYN) { in __cpuhp_setup_state()
1626 ret = cpuhp_reserve_state(state); in __cpuhp_setup_state()
1629 state = ret; in __cpuhp_setup_state()
1632 cpuhp_store_callbacks(state, name, startup, teardown, multi_instance); in __cpuhp_setup_state()
1643 int cpustate = st->state; in __cpuhp_setup_state()
1645 if (cpustate < state) in __cpuhp_setup_state()
1648 ret = cpuhp_issue_call(cpu, state, true, NULL); in __cpuhp_setup_state()
1651 cpuhp_rollback_install(cpu, state, NULL); in __cpuhp_setup_state()
1652 cpuhp_store_callbacks(state, NULL, NULL, NULL, false); in __cpuhp_setup_state()
1661 return state; in __cpuhp_setup_state()
1666 int __cpuhp_state_remove_instance(enum cpuhp_state state, in __cpuhp_state_remove_instance() argument
1669 struct cpuhp_step *sp = cpuhp_get_step(state); in __cpuhp_state_remove_instance()
1672 BUG_ON(cpuhp_cb_check(state)); in __cpuhp_state_remove_instance()
1680 if (!invoke || !cpuhp_get_teardown_cb(state)) in __cpuhp_state_remove_instance()
1689 int cpustate = st->state; in __cpuhp_state_remove_instance()
1691 if (cpustate >= state) in __cpuhp_state_remove_instance()
1692 cpuhp_issue_call(cpu, state, false, node); in __cpuhp_state_remove_instance()
1712 void __cpuhp_remove_state(enum cpuhp_state state, bool invoke) in __cpuhp_remove_state() argument
1714 struct cpuhp_step *sp = cpuhp_get_step(state); in __cpuhp_remove_state()
1717 BUG_ON(cpuhp_cb_check(state)); in __cpuhp_remove_state()
1725 state); in __cpuhp_remove_state()
1729 if (!invoke || !cpuhp_get_teardown_cb(state)) in __cpuhp_remove_state()
1739 int cpustate = st->state; in __cpuhp_remove_state()
1741 if (cpustate >= state) in __cpuhp_remove_state()
1742 cpuhp_issue_call(cpu, state, false, NULL); in __cpuhp_remove_state()
1745 cpuhp_store_callbacks(state, NULL, NULL, NULL, false); in __cpuhp_remove_state()
1757 return sprintf(buf, "%d\n", st->state); in show_cpuhp_state()
1759 static DEVICE_ATTR(state, 0444, show_cpuhp_state, NULL);
1792 if (st->state < target) in write_cpuhp_target()
1956 per_cpu_ptr(&cpuhp_state, smp_processor_id())->state = CPUHP_ONLINE; in boot_cpu_state_init()