On Mon 27-02-23 21:56:25, Hou Tao wrote: > 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. I see, thanks for explanation. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR