On Mon, Feb 20, 2023 at 09:54:28PM +0800, Hou Tao wrote:
From: Hou Tao <redacted>
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 <redacted>
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun