On 1/29/24 1:01 AM, Johannes Thumshirn wrote: > On 26.01.24 22:39, Jens Axboe wrote: >> static void sched_update_worker(struct task_struct *tsk) >> { >> - if (tsk->flags & (PF_WQ_WORKER | PF_IO_WORKER)) { >> + if (tsk->flags & (PF_WQ_WORKER | PF_IO_WORKER | PF_BLOCK_TS)) { >> + if (tsk->flags & PF_BLOCK_TS) >> + blk_plug_invalidate_ts(tsk); >> if (tsk->flags & PF_WQ_WORKER) >> wq_worker_running(tsk); >> - else >> + else if (tsk->flags & PF_IO_WORKER) >> io_wq_worker_running(tsk); >> } >> } > > > Why the nested if? Isn't that more readable: It's so that we can keep it at a single branch for the fast case of none of them being true, which is also how it was done before this change. This one just adds one more flag to check. With your change, it's 3 branches instead of one for the fast case. -- Jens Axboe