Comment # 4 on bug 1198483 from
OK, this was more difficult than I've originally thought :). Ultimately I have
tracked down that commit 5a9d041ba2f6da changes which IO priority
get_current_ioprio() returns because without IO context allocated we return
priority from IOPRIO_CLASS_BE while with IO context we end up returning
priority from IOPRIO_CLASS_NONE. This inconsistency between existing and
non-existing IO context has been introduced by e70344c05995 ("block: fix
default IO priority handling"). Because get_current_ioprio() is effectively
used only for direct IO, we have direct IO using IOPRIO_CLASS_BE priority while
other IO uses IOPRIO_CLASS_NONE priority and as a result IOs from these two
classes cannot be merged resulting in reaim performance regression.

Since e70344c05995 is IMO broken in other ways as well, I've submitted a patch
which makes tasks default to IOPRIO_CLASS_NONE again even without IO context.
I've submitted patches fixing this as:
https://lore.kernel.org/all/20220601132347.13543-1-jack@suse.cz

Let's see what upstream says.


You are receiving this mail because: