All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <bvanassche@acm.org>
To: Damien Le Moal <Damien.LeMoal@wdc.com>, Jens Axboe <axboe@kernel.dk>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	Christoph Hellwig <hch@lst.de>, Jaegeuk Kim <jaegeuk@kernel.org>,
	Adam Manzanares <Adam.Manzanares@wdc.com>,
	Ming Lei <ming.lei@redhat.com>
Subject: Re: [PATCH 8/9] block/mq-deadline: Add I/O priority support
Date: Thu, 27 May 2021 13:12:12 -0700	[thread overview]
Message-ID: <d1cf99a8-df7a-f33d-cee0-2906813256ce@acm.org> (raw)
In-Reply-To: <DM6PR04MB7081661E924716B91E4E0899E7239@DM6PR04MB7081.namprd04.prod.outlook.com>

On 5/26/21 8:48 PM, Damien Le Moal wrote:
> On 2021/05/27 10:02, Bart Van Assche wrote:
>> +	if (next->elv.priv[0]) {
>> +		atomic_inc(&dd->merged[prio]);
>> +	} else {
>> +		WARN_ON_ONCE(true);
>> +	}
> 
> I do not think you need the curly braces here.

These are present because patch 9/9 adds more code in this if-statement
and to improve readability of patch 9/9.

>> @@ -392,9 +453,14 @@ static struct request *dd_dispatch_request(struct blk_mq_hw_ctx *hctx)
>>  {
>>  	struct deadline_data *dd = hctx->queue->elevator->elevator_data;
>>  	struct request *rq;
>> +	enum dd_prio prio;
>>  
>>  	spin_lock(&dd->lock);
>> -	rq = __dd_dispatch_request(dd);
>> +	for (prio = 0; prio <= DD_PRIO_MAX; prio++) {
>> +		rq = __dd_dispatch_request(dd, prio);
>> +		if (rq || dd_queued(dd, prio))
>> +			break;
>> +	}
>>  	spin_unlock(&dd->lock);
> 
> Unless I missed something, this means that the aging (fifo list expire)
> mechanism is per prio list but there is no aging between the prio classes. This
> means that an application doing lots of RT direct IOs will completely starve
> other prio classes and hang the applications using them.
> 
> I think we need aging between the prio classes too to avoid that.

OK, I will add an aging mechanism.

Bart.

  reply	other threads:[~2021-05-27 20:12 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-27  1:01 [PATCH 0/9] Improve I/O priority support Bart Van Assche
2021-05-27  1:01 ` [PATCH 1/9] block/mq-deadline: Add several comments Bart Van Assche
2021-05-27  3:03   ` Damien Le Moal
2021-05-27  6:45   ` Hannes Reinecke
2021-05-27 19:30     ` Bart Van Assche
2021-05-27  8:43   ` Johannes Thumshirn
2021-05-27 15:13   ` Himanshu Madhani
2021-05-27  1:01 ` [PATCH 2/9] block/mq-deadline: Add two lockdep_assert_held() statements Bart Van Assche
2021-05-27  2:25   ` Chaitanya Kulkarni
2021-05-27  3:09   ` Damien Le Moal
2021-05-27  6:46   ` Hannes Reinecke
2021-05-27  8:44   ` Johannes Thumshirn
2021-05-27 15:14   ` Himanshu Madhani
2021-05-27  1:01 ` [PATCH 3/9] block/mq-deadline: Remove two local variables Bart Van Assche
2021-05-27  2:26   ` Chaitanya Kulkarni
2021-05-27  3:11   ` Damien Le Moal
2021-05-27  6:46   ` Hannes Reinecke
2021-05-27  8:44   ` Johannes Thumshirn
2021-05-27 15:15   ` Himanshu Madhani
2021-05-27  1:01 ` [PATCH 4/9] block/mq-deadline: Rename dd_init_queue() and dd_exit_queue() Bart Van Assche
2021-05-27  2:27   ` Chaitanya Kulkarni
2021-05-27  3:13   ` Damien Le Moal
2021-05-27 19:33     ` Bart Van Assche
2021-05-27  6:47   ` Hannes Reinecke
2021-05-27  8:44   ` Johannes Thumshirn
2021-05-27 15:16   ` Himanshu Madhani
2021-05-27  1:01 ` [PATCH 5/9] block/mq-deadline: Improve compile-time argument checking Bart Van Assche
2021-05-27  2:28   ` Chaitanya Kulkarni
2021-05-27  3:24   ` Damien Le Moal
2021-05-27 19:38     ` Bart Van Assche
2021-05-28  1:42       ` Damien Le Moal
2021-05-27  6:48   ` Hannes Reinecke
2021-05-27  8:49   ` Johannes Thumshirn
2021-05-27 15:19   ` Himanshu Madhani
2021-05-27  1:01 ` [PATCH 6/9] block/mq-deadline: Reduce the read expiry time for non-rotational media Bart Van Assche
2021-05-27  2:30   ` Chaitanya Kulkarni
2021-05-27  3:27   ` Damien Le Moal
2021-05-27 19:43     ` Bart Van Assche
2021-05-27  6:52   ` Hannes Reinecke
2021-05-27 15:20   ` Himanshu Madhani
2021-05-27  1:01 ` [PATCH 7/9] block/mq-deadline: Reserve 25% of tags for synchronous requests Bart Van Assche
2021-05-27  3:33   ` Damien Le Moal
2021-05-27 20:00     ` Bart Van Assche
2021-05-27  6:54   ` Hannes Reinecke
2021-05-27 19:55     ` Bart Van Assche
2021-05-27  1:01 ` [PATCH 8/9] block/mq-deadline: Add I/O priority support Bart Van Assche
2021-05-27  3:48   ` Damien Le Moal
2021-05-27 20:12     ` Bart Van Assche [this message]
2021-05-27  7:07   ` Hannes Reinecke
2021-05-27 20:23     ` Bart Van Assche
2021-05-28  1:40       ` Damien Le Moal
2021-05-27  1:01 ` [PATCH 9/9] block/mq-deadline: Add cgroup support Bart Van Assche
2021-05-27  7:09   ` Hannes Reinecke
2021-05-27  6:25 ` [PATCH 0/9] Improve I/O priority support Wang Jianchao
2021-05-27  8:05   ` Wang Jianchao
2021-05-27 18:40     ` Bart Van Assche
2021-05-28  2:05       ` Wang Jianchao
2021-05-28  8:43         ` Paolo Valente
2021-05-28 16:28         ` Bart Van Assche
2021-05-27  8:56 ` Johannes Thumshirn
2021-05-27 17:23   ` Chaitanya Kulkarni
2021-05-27 19:00     ` Bart Van Assche
2021-05-27 17:58 ` Adam Manzanares
2021-05-27 18:53   ` Bart Van Assche
2021-05-27 22:45     ` Adam Manzanares

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=d1cf99a8-df7a-f33d-cee0-2906813256ce@acm.org \
    --to=bvanassche@acm.org \
    --cc=Adam.Manzanares@wdc.com \
    --cc=Damien.LeMoal@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=jaegeuk@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=ming.lei@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.