On 6/13/22 2:01 PM, Alexei Starovoitov wrote:
is doesn't solve anything.
Please provide a reproducer.
I'm trying to find an easy way to repro the issue, so far, unsuccessful.
iirc the task's affinity change can race even with preemption disabled
on this cpu. Why would s/migrate/preemption/ address the deadlock ?
I don't think task's affinity change races with preemption disabled/enabled.
Switching to preemption disable/enable calls helps as it's just simple
counter increment and decrement with a barrier, but with migrate
disable/enable when task's affinity changes, we run into recursive bug
due to rq lock.
By the way, migrate disable/enable does end up calling preemt disable/enable
as well, pls see [1].
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/sched/core.c#n2224