[PATCH 10/10] padata debug

Tvrtko Ursulin tursulin at ursulin.net
Wed Oct 18 19:10:02 UTC 2017


From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
 kernel/padata.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/kernel/padata.c b/kernel/padata.c
index 868f947166d7..8e3225de22f2 100644
--- a/kernel/padata.c
+++ b/kernel/padata.c
@@ -496,9 +496,12 @@ static void __padata_stop(struct padata_instance *pinst)
 static void padata_replace(struct padata_instance *pinst,
 			   struct parallel_data *pd_new)
 {
-	struct parallel_data *pd_old = pinst->pd;
+	struct parallel_data *pd_old = rcu_access_pointer(pinst->pd);
 	int notification_mask = 0;
 
+	printk("padata_replace pd_old=%p\n", pd_old);
+	WARN_ON(!pd_old);
+
 	pinst->flags |= PADATA_RESET;
 
 	rcu_assign_pointer(pinst->pd, pd_new);
@@ -783,6 +786,8 @@ static int padata_cpu_prep_down(unsigned int cpu, struct hlist_node *node)
 	int ret;
 
 	pinst = hlist_entry_safe(node, struct padata_instance, node);
+	printk("padata_cpu_prep_down cpu=%u node=%p pinst=%p\n", cpu, node, pinst);
+	WARN_ON(!pinst);
 	if (!pinst_has_cpu(pinst, cpu))
 		return 0;
 
@@ -800,7 +805,7 @@ static void __padata_free(struct padata_instance *pinst)
 #ifdef CONFIG_HOTPLUG_CPU
 	cpuhp_state_remove_instance_nocalls(hp_online, &pinst->node);
 #endif
-
+	printk("__data_free pinst=%p\n", pinst);
 	padata_stop(pinst);
 	padata_free_pd(pinst->pd);
 	free_cpumask_var(pinst->cpumask.pcpu);
@@ -984,6 +989,7 @@ static struct padata_instance *padata_alloc(struct workqueue_struct *wq,
 #ifdef CONFIG_HOTPLUG_CPU
 	cpuhp_state_add_instance_nocalls_cpuslocked(hp_online, &pinst->node);
 #endif
+	printk("padata_alloc pinst=%p\n", pinst);
 	return pinst;
 
 err_free_masks:
-- 
2.9.5



More information about the Intel-gfx-trybot mailing list