Re: [PATCH] block: sync mixed merged request's failfast with 1st bio's

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 09, 2023 at 08:55:27PM +0800, Ming Lei wrote:
> We support mixed merge for requests/bios with different fastfail
> settings. When request fails, each time we only handle the portion
> with same failfast setting, then bios with failfast can be failed
> immediately, and bios without failfast can be retried.
> 
> The idea is pretty good, but the current implementation has several
> defects:
> 
> 1) initially RA bio doesn't set failfast, however bio merge code
> doesn't consider this point, and just check its failfast setting for
> deciding if mixed merge is required. Fix this issue by adding helper
> of bio_failfast().
> 
> 2) when merging bio to request front, if this request is mixed
> merged, we have to sync request's faifast setting with 1st bio's
> failfast. Fix it by calling blk_update_mixed_merge().
> 
> 3) when merging bio to request back, if this request is mixed
> merged, we have to mark the bio as failfast, because blk_update_request
> simply updates request failfast with 1st bio's failfast. Fix
> it by calling blk_update_mixed_merge().
> 
> Fixes one normal EXT4 READ IO failure issue, because it is observed
> that the normal READ IO is merged with RA IO, and the mixed merged
> request has different failfast setting with 1st bio's, so finally
> the normal READ IO doesn't get retried.
> 
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Fixes: 80a761fd33cf ("block: implement mixed merge of different failfast requests")
> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>
> ---
>  block/blk-merge.c | 35 +++++++++++++++++++++++++++++++++--
>  1 file changed, 33 insertions(+), 2 deletions(-)

Hi Tejun, Jens and Guys,

Any chance to take a look? The patch addresses one RH customer issue.


Thanks, 
Ming




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux