[PATCH 0/6] sched: Fix affine_move_task() wreckage
From: Peter Zijlstra
Date: Wed Feb 24 2021 - 09:32:18 EST
Hi!
The long and short of it is that commit 6d337eab041d ("sched: Fix
migrate_disable() vs set_cpus_allowed_ptr()") is utterly wrecked and it is a
miracle it doesn't insta explode for anybody (else).
The longer story is that after some initial confusion and tracing I found the
first problem and send (patch #1):
https://lkml.kernel.org/r/YCfLHxpL+L0BYEyG@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
and was hoping that was the end of it (ha!). Obviously the one machine that did
manage to trigger this instantly found the next problem, now addressed in patch
#5.
The even longer story is that Monday last I sat down with a large piece of
(virtual) paper, basically threw the entire affine_move_task() /
migration_cpu_stop() logic out and while doodling re-implemented it all.
The difficult machine was happy on the second try after that.
Ofcourse, at that point I had a single huge rewrite of commit 6d337eab041d, and
I pondered sending it like that. However I figured that for review and
posterity it might be easier/better to do smaller steps. So today I reverse
engineerd a possible logical path between the two states.
I'm hoping nothing got wrecked while doing the cleanups :-)
Patches also in:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/urgent