Re: [PATCH] blk-iocost: skip empty flush bio in iocost

From: Tejun Heo
Date: Thu Jul 20 2023 - 15:59:46 EST


On Thu, Jul 20, 2023 at 08:14:41PM +0800, chengming.zhou@xxxxxxxxx wrote:
> From: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx>
>
> The flush bio may have data, may have no data (empty flush), we couldn't
> calculate cost for empty flush bio. So we'd better just skip it for now.
>
> Another side effect is that empty flush bio's bio_end_sector() is 0, cause
> iocg->cursor reset to 0, may break the cost calculation of other bios.
>
> This isn't good enough, since flush bio still consume the device bandwidth,
> but flush request is special, can be merged randomly in the flush state
> machine, we don't know how to calculate cost for it for now.
>
> Its completion time also has flaws, which may include the pre-flush or
> post-flush completion time, but I don't know if we need to fix that and
> how to fix it.
>
> Signed-off-by: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx>

It's unlikely that this will change behaviors in an observable way in most
cases. That said, yeah, ignoring it in terms of cost calculation is likely
the better thing to do.

Acked-by: Tejun Heo <tj@xxxxxxxxxx>

Thanks.

--
tejun