本系列把 task_struct 中的 1-bit sched_remote_wakeup 替换为 u8 sched_remote_wakeup_flags,并在 ttwu_queue_wakelist() 中用 WF_TTWU_QUEUE_MASK = WF_TTWU|WF_SYNC|WF_MIGRATED|WF_RQ_SELECTED 保留这些 flag;sched_ttwu_pending() 排空 wakelist 时把完整 flags 传给 ttwu_do_activate(),修复 ENQUEUE_RQ_SELECTED 与 wakeup_preempt_fair() 在 queu...
本系列把 task_struct 中的 1-bit sched_remote_wakeup 替换为 u8 sched_remote_wakeup_flags,并在 ttwu_queue_wakelist() 中用 WF_TTWU_QUEUE_MASK = WF_TTWU|WF_SYNC|WF_MIGRATED|WF_RQ_SELECTED 保留这些 flag;sched_ttwu_pending() 排空 wakelist 时把完整 flags 传给 ttwu_do_activate(),修复 ENQUEUE_RQ_SELECTED 与 wakeup_preempt_fair() 在 queued wakeup 路径上与直接 wakeup 行为不一致的问题。v3 相对 v2 增加 READ_ONCE/WRITE_ONCE,并以 WF_RQ_SELECTED 抢占行为为 changelog 主线,但 K Prateek Nayak 仍质疑 barrier 必要性及 ordering 注释的措辞,预期会有 v4。