答复: [PATCH 1/2] block: Call .limit_depth() after .hctx has been set

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

 



Hi  Jens Axboe,

Excuse me, do you have any comments about this patch set from Bart Van Assche, We meet this  "warning issue" about async_depth, more detail info is in:
https://lore.kernel.org/all/CAHJ8P3KEOC_DXQmZK3u7PHgZFmWpMVzPa6pgkOgpyoH7wgT5nw@xxxxxxxxxxxxxx/
please help consider it and it can solve the above warning issue.
Thanks.

Attach The following commit msg from Bart Van Assche https://lore.kernel.org/all/20240403212354.523925-1-bvanassche@xxxxxxx/#R

-----邮件原件-----
发件人: Bart Van Assche <bvanassche@xxxxxxx>
发送时间: 2024年4月6日 4:05
收件人: Christoph Hellwig <hch@xxxxxx>
抄送: Jens Axboe <axboe@xxxxxxxxx>; linux-block@xxxxxxxxxxxxxxx; Damien Le Moal <dlemoal@xxxxxxxxxx>; 牛志国 (Zhiguo Niu) <Zhiguo.Niu@xxxxxxxxxx>
主题: Re: [PATCH 1/2] block: Call .limit_depth() after .hctx has been set


注意: 这封邮件来自于外部。除非你确定邮件内容安全,否则不要点击任何链接和附件。
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.



On 4/5/24 01:46, Christoph Hellwig wrote:
> Calling limit_depth with the hctx set make sense, but the way it's 
> done looks odd.  Why not something like this?
>
> diff --git a/block/blk-mq.c b/block/blk-mq.c index 
> b8dbfed8b28be1..88886fd93b1a9c 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -448,6 +448,10 @@ static struct request *__blk_mq_alloc_requests(struct blk_mq_alloc_data *data)
>       if (data->cmd_flags & REQ_NOWAIT)
>               data->flags |= BLK_MQ_REQ_NOWAIT;
>
> +retry:
> +     data->ctx = blk_mq_get_ctx(q);
> +     data->hctx = blk_mq_map_queue(q, data->cmd_flags, data->ctx);
> +
>       if (q->elevator) {
>               /*
>                * All requests use scheduler tags when an I/O scheduler 
> is @@ -469,13 +473,9 @@ static struct request *__blk_mq_alloc_requests(struct blk_mq_alloc_data *data)
>                       if (ops->limit_depth)
>                               ops->limit_depth(data->cmd_flags, data);
>               }
> -     }
> -
> -retry:
> -     data->ctx = blk_mq_get_ctx(q);
> -     data->hctx = blk_mq_map_queue(q, data->cmd_flags, data->ctx);
> -     if (!(data->rq_flags & RQF_SCHED_TAGS))
> +     } else {
>               blk_mq_tag_busy(data->hctx);
> +     }
>
>       if (data->flags & BLK_MQ_REQ_RESERVED)
>               data->rq_flags |= RQF_RESV;

Hi Christoph,

The above patch looks good to me and I'm fine with replacing patch 1/2 with the above patch. Do you want me to add your Signed-off-by to the above patch?

Thanks,

Bart.




[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