Re: [PATCH v1] block: make the fair sharing of tag configurable

From: Bart Van Assche
Date: Tue May 09 2023 - 00:23:03 EST


On 5/8/23 18:27, Ed Tsai wrote:
diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
index d6af9d431dc6..b8b36823f5f5 100644
--- a/block/blk-mq-tag.c
+++ b/block/blk-mq-tag.c
@@ -97,6 +97,7 @@ static int __blk_mq_get_tag(struct blk_mq_alloc_data *data,
struct sbitmap_queue *bt)
{
if (!data->q->elevator && !(data->flags & BLK_MQ_REQ_RESERVED) &&
+ blk_queue_fair_tag_sharing(data->q) &&
!hctx_may_queue(data->hctx, bt))
return BLK_MQ_NO_TAG;

Has it been considered to move the blk_queue_fair_tag_sharing() call into
hctx_may_queue()? That should make this patch shorter.

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 17d7bb875fee..e96a50265285 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -5149,6 +5149,9 @@ static int ufshcd_slave_configure(struct scsi_device *sdev)
blk_queue_update_dma_pad(q, PRDT_DATA_BYTE_COUNT_PAD - 1);
if (hba->quirks & UFSHCD_QUIRK_4KB_DMA_ALIGNMENT)
blk_queue_update_dma_alignment(q, 4096 - 1);
+
+ blk_queue_flag_clear(QUEUE_FLAG_FAIR_TAG_SHARING, q);
+
/*
* Block runtime-pm until all consumers are added.
* Refer ufshcd_setup_links().

Please split this patch into one patch for the block layer core and another
patch for the UFS driver.

Thanks,

Bart.