On Wed, 2015-04-08 at 14:32 -0700, Kevin Hilman wrote:
From: Kevin Hilman khilman@linaro.org
Commit cd5c2cc93d3d (hmp: Remove potential for task_struct access race) introduced a put_task_struct() to prevent races, but in doing so introduced potential spinlock recursion. (This change was further consolidated in commit 0baa5811bacf -- sched: hmp: unify active migration code.)
Unfortunately, the put_task_struct() is done while the runqueue spinlock is held, but put_task_struct() can also cause a reschedule
Under what circumstances can this reschedule happen? As the LDTS ticket is not accessible we are lacking the background and analysis of the reported problem.