[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