linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Valente <paolo.valente@linaro.org>
To: Jens Axboe <axboe@fb.com>
Cc: Jens Axboe <axboe@kernel.dk>,
	linux-block@vger.kernel.org,
	Linux-Kernal <linux-kernel@vger.kernel.org>,
	osandov@fb.com
Subject: Re: [PATCH 7/8] mq-deadline: add blk-mq adaptation of the deadline IO scheduler
Date: Thu, 16 Feb 2017 11:46:38 +0100	[thread overview]
Message-ID: <FC3DABDF-FA97-4E45-84C0-D9554669FF15@linaro.org> (raw)
In-Reply-To: <1481933536-12844-8-git-send-email-axboe@fb.com>


> Il giorno 17 dic 2016, alle ore 01:12, Jens Axboe <axboe@fb.com> ha scritto:
> 
> This is basically identical to deadline-iosched, except it registers
> as a MQ capable scheduler. This is still a single queue design.
> 
> Signed-off-by: Jens Axboe <axboe@fb.com>
...
> +
> +static void dd_merged_requests(struct request_queue *q, struct request *req,
> +			       struct request *next)
> +{
> +	/*
> +	 * if next expires before rq, assign its expire time to rq
> +	 * and move into next position (next will be deleted) in fifo
> +	 */
> +	if (!list_empty(&req->queuelist) && !list_empty(&next->queuelist)) {
> +		if (time_before((unsigned long)next->fifo_time,
> +				(unsigned long)req->fifo_time)) {
> +			list_move(&req->queuelist, &next->queuelist);
> +			req->fifo_time = next->fifo_time;
> +		}
> +	}
> +

Jens,
while trying to imagine the possible causes of Bart's hang with
bfq-mq, I've bumped into the following doubt: in the above function
(in my case, in bfq-mq-'s equivalent of the above function), are
we sure that neither req or next could EVER be in dd->dispatch instead
of dd->fifo_list?  I've tried to verify it, but, although I think it has never
happened in my tests, I was not able to make sure that no unlucky
combination may ever happen (considering also the use of
blk_rq_is_passthrough too, to decide where to put a new request).

I'm making a blunder, right?

Thanks,
Paolo

  parent reply	other threads:[~2017-02-16 10:46 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-17  0:12 [PATCHSET v4] blk-mq-scheduling framework Jens Axboe
2016-12-17  0:12 ` [PATCH 1/8] block: move existing elevator ops to union Jens Axboe
2016-12-17  0:12 ` [PATCH 2/8] blk-mq: make mq_ops a const pointer Jens Axboe
2016-12-17  0:12 ` [PATCH 3/8] block: move rq_ioc() to blk.h Jens Axboe
2016-12-20 10:12   ` Paolo Valente
2016-12-20 15:46     ` Jens Axboe
2016-12-20 22:14       ` Jens Axboe
2016-12-17  0:12 ` [PATCH 4/8] blk-mq: un-export blk_mq_free_hctx_request() Jens Axboe
2016-12-17  0:12 ` [PATCH 5/8] blk-mq: export some helpers we need to the scheduling framework Jens Axboe
2016-12-17  0:12 ` [PATCH 6/8] blk-mq-sched: add framework for MQ capable IO schedulers Jens Axboe
2016-12-20 11:55   ` Paolo Valente
2016-12-20 15:45     ` Jens Axboe
2016-12-21  2:22     ` Jens Axboe
2016-12-22 15:20       ` Paolo Valente
2016-12-22  9:59   ` Paolo Valente
2016-12-22 11:13     ` Paolo Valente
2017-01-17  2:47       ` Jens Axboe
2017-01-17 10:13         ` Paolo Valente
2017-01-17 12:38           ` Jens Axboe
2016-12-23 10:12     ` Paolo Valente
2017-01-17  2:47     ` Jens Axboe
2017-01-17  9:17       ` Paolo Valente
2016-12-17  0:12 ` [PATCH 7/8] mq-deadline: add blk-mq adaptation of the deadline IO scheduler Jens Axboe
2016-12-20  9:34   ` Paolo Valente
2016-12-20 15:46     ` Jens Axboe
2016-12-21 11:59   ` Bart Van Assche
2016-12-21 14:22     ` Jens Axboe
2016-12-22 16:07   ` Paolo Valente
2017-01-17  2:47     ` Jens Axboe
2016-12-22 16:49   ` Paolo Valente
2017-01-17  2:47     ` Jens Axboe
2017-01-20 11:07       ` Paolo Valente
2017-01-20 14:26         ` Jens Axboe
2017-01-20 13:14   ` Paolo Valente
2017-01-20 13:18     ` Paolo Valente
2017-01-20 14:28       ` Jens Axboe
2017-01-20 14:28     ` Jens Axboe
2017-02-01 11:11   ` Paolo Valente
2017-02-02  5:19     ` Jens Axboe
2017-02-02  9:19       ` Paolo Valente
2017-02-02 15:30         ` Jens Axboe
2017-02-02 21:15           ` Paolo Valente
2017-02-02 21:32             ` Jens Axboe
2017-02-07 17:27               ` Paolo Valente
2017-02-01 11:56   ` Paolo Valente
2017-02-02  5:20     ` Jens Axboe
2017-02-16 10:46   ` Paolo Valente [this message]
2017-02-16 15:35     ` Jens Axboe
2016-12-17  0:12 ` [PATCH 8/8] blk-mq-sched: allow setting of default " Jens Axboe
2016-12-19 11:32 ` [PATCHSET v4] blk-mq-scheduling framework Paolo Valente
2016-12-19 15:20   ` Jens Axboe
2016-12-19 15:33     ` Jens Axboe
2016-12-19 18:21     ` Paolo Valente
2016-12-19 21:05       ` Jens Axboe
2016-12-22 15:28         ` Paolo Valente
2017-01-17  2:47           ` Jens Axboe
2017-01-17 10:49             ` Paolo Valente
2017-01-18 16:14               ` Paolo Valente
2017-01-18 16:21                 ` Jens Axboe
2017-01-23 17:04                   ` Paolo Valente
2017-01-23 17:42                     ` Jens Axboe
2017-01-25  8:46                       ` Paolo Valente
2017-01-25 16:13                         ` Jens Axboe
2017-01-26 14:23                           ` Paolo Valente
2016-12-22 16:23 ` Bart Van Assche
2016-12-22 16:52   ` Omar Sandoval
2016-12-22 16:57     ` Bart Van Assche
2016-12-22 17:12       ` Omar Sandoval
2016-12-22 17:39         ` 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=FC3DABDF-FA97-4E45-84C0-D9554669FF15@linaro.org \
    --to=paolo.valente@linaro.org \
    --cc=axboe@fb.com \
    --cc=axboe@kernel.dk \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=osandov@fb.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).