From: Bart Van Assche <bvanassche@acm.org>
To: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>,
Jens Axboe <axboe@kernel.dk>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Christoph Hellwig <hch@lst.de>, Ming Lei <ming.lei@redhat.com>,
Keith Busch <kbusch@kernel.org>,
Damien Le Moal <damien.lemoal@opensource.wdc.com>,
Yu Kuai <yukuai1@huaweicloud.com>, Ed Tsai <ed.tsai@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>
Subject: Re: [PATCH v6 1/4] block: Make fair tag sharing configurable
Date: Fri, 1 Dec 2023 14:14:49 -0800 [thread overview]
Message-ID: <22a70cc4-2150-4296-84d5-f0bf6617613a@acm.org> (raw)
In-Reply-To: <e728ac4b-bce4-4c2e-88bb-8874c73f0c8e@wdc.com>
On 12/1/23 04:52, Johannes Thumshirn wrote:
> On 30.11.23 20:31, Bart Van Assche wrote:
>> +void blk_mq_update_fair_sharing(struct blk_mq_tag_set *set, bool enable)
>> +{
>> + const unsigned int DFTS_BIT = ilog2(BLK_MQ_F_DISABLE_FAIR_TAG_SHARING);
>> + struct blk_mq_hw_ctx *hctx;
>> + struct request_queue *q;
>> + unsigned long i;
>> +
>> + /*
>> + * Serialize against blk_mq_update_nr_hw_queues() and
>> + * blk_mq_realloc_hw_ctxs().
>> + */
>> + mutex_lock(&set->tag_list_lock);
>> + list_for_each_entry(q, &set->tag_list, tag_set_list)
>> + blk_mq_freeze_queue(q);
>> + assign_bit(DFTS_BIT, &set->flags, !enable);
>> + list_for_each_entry(q, &set->tag_list, tag_set_list)
>> + queue_for_each_hw_ctx(q, hctx, i)
>> + assign_bit(DFTS_BIT, &hctx->flags, !enable);
>> + list_for_each_entry(q, &set->tag_list, tag_set_list)
>> + blk_mq_unfreeze_queue(q);
>> + mutex_unlock(&set->tag_list_lock);
>
> Hi Bart,
>
> The above code adds a 3rd user (at least) of the following pattern to
> the kernel:
>
> list_for_each_entry(q, &set->tag_list, tag_set_list)
> blk_mq_freeze_queue(q);
>
> /* do stuff */
>
> list_for_each_entry(q, &set->tag_list, tag_set_list)
> blk_mq_unfreeze_queue(q);
>
> Would it maybe be beneficial if we'd introduce functions for this, like:
>
> static inline void blk_mq_freeze_tag_set(struct blk_mq_tag_set *set)
> {
> lockdep_assert_held(&set->tag_list_lock);
>
> list_for_each_entry(q, &set->tag_list, tag_set_list)
> blk_mq_freeze_queue(q);
> }
>
> static inline void blk_mq_unfreeze_tag_set(struct blk_mq_tag_set *set)
> {
> lockdep_assert_held(&set->tag_list_lock);
>
> list_for_each_entry(q, &set->tag_list, tag_set_list)
> blk_mq_unfreeze_queue(q);
> }
Hi Johannes,
That sounds like a good idea to me. I will make this change.
Thanks,
Bart.
next prev parent reply other threads:[~2023-12-01 22:14 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-30 19:31 [PATCH v6 0/6] Disable fair tag sharing for UFS devices Bart Van Assche
2023-11-30 19:31 ` [PATCH v6 1/4] block: Make fair tag sharing configurable Bart Van Assche
2023-12-01 12:52 ` Johannes Thumshirn
2023-12-01 22:14 ` Bart Van Assche [this message]
2023-12-02 7:21 ` Yu Kuai
2023-12-04 4:13 ` Bart Van Assche
2023-12-25 12:51 ` Yu Kuai
2023-12-26 2:22 ` Bart Van Assche
2024-01-11 19:22 ` Bart Van Assche
2024-01-12 1:08 ` Yu Kuai
2024-01-12 4:39 ` Christoph Hellwig
2024-01-14 3:22 ` Yu Kuai
2024-01-15 5:59 ` Christoph Hellwig
2024-01-15 6:18 ` Yu Kuai
2024-01-16 2:59 ` Bart Van Assche
2024-01-16 10:24 ` Yu Kuai
2024-01-16 17:36 ` Bart Van Assche
2024-01-18 7:31 ` Christoph Hellwig
2024-01-18 18:40 ` Bart Van Assche
2024-01-23 9:13 ` Christoph Hellwig
2024-01-23 15:16 ` Bart Van Assche
2024-01-24 9:08 ` Christoph Hellwig
2024-01-30 0:03 ` Bart Van Assche
2024-01-31 6:22 ` Christoph Hellwig
2024-01-31 21:32 ` Bart Van Assche
2024-01-31 21:37 ` Keith Busch
2024-01-31 21:42 ` Bart Van Assche
2024-01-31 23:04 ` Keith Busch
2024-01-31 23:41 ` Bart Van Assche
2024-01-31 23:52 ` Damien Le Moal
2024-01-16 2:52 ` Bart Van Assche
2023-11-30 19:31 ` [PATCH v6 2/4] scsi: core: Make fair tag sharing configurable in the host template Bart Van Assche
2023-11-30 19:31 ` [PATCH v6 3/4] scsi: core: Make fair tag sharing configurable via sysfs Bart Van Assche
2023-11-30 19:31 ` [PATCH v6 4/4] scsi: ufs: Disable fair tag sharing Bart Van Assche
2023-12-04 7:52 ` [PATCH v6 0/6] Disable fair tag sharing for UFS devices Christoph Hellwig
2023-12-05 3:15 ` Bart Van Assche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=22a70cc4-2150-4296-84d5-f0bf6617613a@acm.org \
--to=bvanassche@acm.org \
--cc=Johannes.Thumshirn@wdc.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=axboe@kernel.dk \
--cc=damien.lemoal@opensource.wdc.com \
--cc=ed.tsai@mediatek.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=matthias.bgg@gmail.com \
--cc=ming.lei@redhat.com \
--cc=yukuai1@huaweicloud.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).