Messages in this thread | | | Date | Wed, 24 Feb 2021 13:24:39 +0100 | From | Peter Zijlstra <> | Subject | [PATCH 0/6] sched: Fix affine_move_task() wreckage |
| |
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@hirez.programming.kicks-ass.net
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
| |