Yao Kai 发送 v2 系列 patch,修复 futex requeue PI 路径上的两处并发问题:patch 1 在 futex_wait_requeue_pi() 的 Q_REQUEUE_PI_DONE 分支围绕 rt_mutex_wait_proxy_lock() 调用 rt_mutex_pre_schedule/post_schedule,避免 futex_do_wait() 跳过 schedule() 后 rt_mutex_schedule() 缺 sched_rt_mutex 触发 WARN;patch 2 让 futex_requeue_pi_complete() 对 Q...
Yao Kai 发送 v2 系列 patch,修复 futex requeue PI 路径上的两处并发问题:patch 1 在 futex_wait_requeue_pi() 的 Q_REQUEUE_PI_DONE 分支围绕 rt_mutex_wait_proxy_lock() 调用 rt_mutex_pre_schedule/post_schedule,避免 futex_do_wait() 跳过 schedule() 后 rt_mutex_schedule() 缺 sched_rt_mutex 触发 WARN;patch 2 让 futex_requeue_pi_complete() 对 Q_REQUEUE_PI_LOCKED 跳过 rcuwait_wake_up,避免栈上 futex_q 在 LOCKED 发布后被 stale task 指针引用导致 KASAN 报告。Peter Zijlstra 与 Sebastian Siewior 已介入评审,Sebastian 对 patch 1 调用点是否仍满足 pre_schedule 的语义提出质疑,作者回复中。