Skip to contentSkip to conversation

A possible problem in start_secondary()

sh Kirill Tkhai 1 participant 1 message Jun 28, 2013 SuperH

lore
Share & tools
lore
#0 lore raw

Hi, Paul,

I found out a possible wrong order of local_irq_enable/set_cpu_online at start_secondary().

If irqs are enabled then cpu can receive a timer interrupt, which can cause softirq action.

If we are waking softirq thread on offline cpu, select_task_rq() chooses any active cpu and changes affinity. So, possible bound softirq thread will change his affinity.

I had this problem on old kernel version on sparc. Maybe, it will be useful for you.

Regards,
Kirill