Re: [PATCH stable] block/mq-deadline: fix different priority request on the same zone

From: Bart Van Assche
Date: Thu May 16 2024 - 09:45:46 EST


On 5/16/24 03:28, Wu Bo wrote:
Zoned devices request sequential writing on the same zone. That means
if 2 requests on the saem zone, the lower pos request need to dispatch
to device first.
While different priority has it's own tree & list, request with high
priority will be disptch first.
So if requestA & requestB are on the same zone. RequestA is BE and pos
is X+0. ReqeustB is RT and pos is X+1. RequestB will be disptched before
requestA, which got an ERROR from zoned device.

This is found in a practice scenario when using F2FS on zoned device.
And it is very easy to reproduce:
1. Use fsstress to run 8 test processes
2. Use ionice to change 4/8 processes to RT priority

Hi Wu,

I agree that there is a problem related to the interaction of I/O
priority and zoned storage. A solution with a lower runtime overhead
is available here:
https://lore.kernel.org/linux-block/20231218211342.2179689-1-bvanassche@xxxxxxx/T/#me97b088c535278fe3d1dc5846b388ed58aa53f46

Are you OK with that alternative solution?

Thanks,

Bart.