Hi On 2/27/2023 9:03 PM, Jan Kara wrote: > On Mon 20-02-23 21:54:28, Hou Tao wrote: >> From: Hou Tao <houtao1@xxxxxxxxxx> >> >> Since commit a78418e6a04c ("block: Always initialize bio IO priority on >> submit"), bio->bi_ioprio will never be IOPRIO_CLASS_NONE when calling >> blkcg_set_ioprio(), so there will be no way to promote the io-priority >> of one cgroup to IOPRIO_CLASS_RT, because bi_ioprio will always be >> greater than or equals to IOPRIO_CLASS_RT. >> >> It seems possible to call blkcg_set_ioprio() first then try to >> initialize bi_ioprio later in bio_set_ioprio(), but this doesn't work >> for bio in which bi_ioprio is already initialized (e.g., direct-io), so >> introduce a new ioprio policy to promote the iopriority of bio to >> IOPRIO_CLASS_RT if the ioprio is not already RT. >> >> So introduce a new promote-to-rt policy to achieve this. For none-to-rt >> policy, although it doesn't work now, but considering that its purpose >> was also to override the io-priority to RT and allow for a smoother >> transition, just keep it and treat it as an alias of the promote-to-rt >> policy. >> >> Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx> > Looks good to me. Feel free to add: > > Reviewed-by: Jan Kara <jack@xxxxxxx> Thanks for the review. > > Just one question regarding doc below: > >> ++----------------+---+ >> +| no-change | 0 | >> ++----------------+---+ >> +| rt-to-be | 2 | >> ++----------------+---+ >> +| all-to-idle | 3 | >> ++----------------+---+ > Shouldn't there be preempt-to-rt somewhere in this table as well? Or why > this this in the doc at all? I'd consider the numbers to be kernel internal > thing? These numbers are used in the algorithm paragraph below to explain how the final ioprio is calculated. For prompt-to-rt policy, the algorithm is different and the number is unnecessary. > Honza