[PATCH 14/14] cpuhp debug
Tvrtko Ursulin
tursulin at ursulin.net
Thu Oct 19 08:48:07 UTC 2017
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
kernel/cpu.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/kernel/cpu.c b/kernel/cpu.c
index d851df22f5c5..93c260cee70a 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -179,6 +179,8 @@ static int cpuhp_invoke_callback(unsigned int cpu, enum cpuhp_state state,
if (!cb)
return 0;
trace_cpuhp_enter(cpu, st->target, state, cb);
+ printk("cpuhp_invoke_callback single cpu=%u state=%u\n",
+ cpu, state);
ret = cb(cpu);
trace_cpuhp_exit(cpu, st->state, state, ret);
return ret;
@@ -191,6 +193,8 @@ static int cpuhp_invoke_callback(unsigned int cpu, enum cpuhp_state state,
if (node) {
WARN_ON_ONCE(lastp && *lastp);
trace_cpuhp_multi_enter(cpu, st->target, state, cbm, node);
+ printk("cpuhp_invoke_callback multi-single cpu=%u state=%u node=%p\n",
+ cpu, state, node);
ret = cbm(cpu, node);
trace_cpuhp_exit(cpu, st->state, state, ret);
return ret;
@@ -203,6 +207,8 @@ static int cpuhp_invoke_callback(unsigned int cpu, enum cpuhp_state state,
break;
trace_cpuhp_multi_enter(cpu, st->target, state, cbm, node);
+ printk("cpuhp_invoke_callback multi cpu=%u state=%u node=%p\n",
+ cpu, state, node);
ret = cbm(cpu, node);
trace_cpuhp_exit(cpu, st->state, state, ret);
if (ret) {
@@ -558,6 +564,8 @@ static void cpuhp_thread_fun(unsigned int cpu)
goto next;
}
+ printk("cpuhp_thread_fun cpu=%u state=%u bringup=%u node=%p\n",
+ cpu, state, bringup, st->node);
if (cpuhp_is_atomic_state(state)) {
local_irq_disable();
st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last);
@@ -570,6 +578,7 @@ static void cpuhp_thread_fun(unsigned int cpu)
} else {
st->result = cpuhp_invoke_callback(cpu, state, bringup, st->node, &st->last);
}
+ printk("cpuhp_thread_fun result=%d\n", st->result);
if (st->result) {
/*
@@ -1455,6 +1464,8 @@ static int cpuhp_store_callbacks(enum cpuhp_state state, const char *name,
sp->teardown.single = teardown;
sp->name = name;
sp->multi_instance = multi_instance;
+ printk("cpuhp store callbacks state=%u name=%s multi=%u\n",
+ state, name, multi_instance);
INIT_HLIST_HEAD(&sp->list);
return ret;
}
@@ -1485,6 +1496,7 @@ static int cpuhp_issue_call(int cpu, enum cpuhp_state state, bool bringup,
* The non AP bound callbacks can fail on bringup. On teardown
* e.g. module removal we crash for now.
*/
+ printk("cpuhp_issue_call state=%u node=%p\n", state, node);
#ifdef CONFIG_SMP
if (cpuhp_is_ap_state(state))
ret = cpuhp_invoke_ap_callback(cpu, state, bringup, node);
@@ -1561,6 +1573,7 @@ int __cpuhp_state_add_instance_cpuslocked(enum cpuhp_state state,
add_node:
ret = 0;
hlist_add_head(node, &sp->list);
+ printk("cpuhp added state=%u node=%p\n", state, node);
unlock:
mutex_unlock(&cpuhp_state_mutex);
return ret;
@@ -1700,6 +1713,7 @@ int __cpuhp_state_remove_instance(enum cpuhp_state state,
}
remove:
+ printk("cpuhp remove instance state=%u node=%p\n", state, node);
hlist_del(node);
mutex_unlock(&cpuhp_state_mutex);
cpus_read_unlock();
--
2.9.5
More information about the Intel-gfx-trybot
mailing list