public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Christoph Hellwig <hch@infradead.org>, Tejun Heo <tj@kernel.org>,
	Jens Axboe <axboe@kernel.dk>
Cc: Paolo Valente <paolo.valente@linaro.org>,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	ulf.hansson@linaro.org, linus.walleij@linaro.org,
	Omar Sandoval <osandov@fb.com>
Subject: Re: [PATCH V2 00/22] Replace the CFQ I/O Scheduler with BFQ
Date: Wed, 31 Aug 2016 23:09:49 +0100	[thread overview]
Message-ID: <20160831220949.GD5967@sirena.org.uk> (raw)
In-Reply-To: <20160808131954.GA12647@infradead.org>

[-- Attachment #1: Type: text/plain, Size: 2603 bytes --]

On Mon, Aug 08, 2016 at 06:19:54AM -0700, Christoph Hellwig wrote:

> please don't spend more time on the legacy request interface.  If you
> want your work included and make an impact add it to blk-mq.

So, an update on this: off-list Tejun said that he'd spoken with Jens
and agreed that nothing should be changed in the block layer and
everything should be focused on blk-mq at this point.  This is obviously
very disappointing especially given the previous reviews - Christoph had
been very clear but it wasn't clear to us that everyone agreed with him.

I do agree (as I think everyone looking at BFQ does) that we do want to
work to replace the current block code with blk-mq but it really feels
that we're still quite a way from being able to deploy it on systems
with MMC or SD storage where we're particularly looking with this work.
The big thing that needs doing is the queuing and scheduling which these
devices don't make any effort to do in hardware.  Omar has been working
on this but the work has mostly been off-list thus far AFAICT so not
terribly visible.  Once that's there the individual subsystems will need
to be converted, that's fairly mechanical code wise but is obviously
going to need some studying of the performance in order to make sure we
don't cause problems for users.  This all seems like at least a couple
of releases worth of work rather than being at the point where the
current code can be deprecated.

So, how do we take this forward?  In terms of Linaro's work what we've
been thinking is:

 - Send a proposal for a face to face discussion at Kernel Summit (Paolo
   will be going there), Paolo said he was drafting a mail.
 - Continue maintaining and testing BFQ, most likely reverting to a
   separate scheduler rather than replacing CFQ.
 - Do some benchmarks on the current status of the various branches on
   relevant hardware (including trying to convert some of these slower
   devices to blk-mq and seeing what happens).  Linus has been working
   on this already in the context of MMC.
 - Try to pitch in to the blk-mq development, we'll need to work out how
   to coordinate with everyone else here.

I personally feel that given that it looks like this is all going to
take a while it'd still be good to merge BFQ at least as an alternative
scheduler so that people can take advantage of it while the work on
modernising everything to use blk-mq - that way we can hopefully improve
the state of the art for users in the short term or at least help get
some wider feedback on how well this works in the real world
independently of the work on blk-mq.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  parent reply	other threads:[~2016-08-31 22:10 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-08 11:14 [PATCH V2 00/22] Replace the CFQ I/O Scheduler with BFQ Paolo Valente
2016-08-08 11:14 ` [PATCH V2 01/22] block, cfq: remove queue merging for close cooperators Paolo Valente
2016-08-08 11:14 ` [PATCH V2 02/22] block, cfq: remove close-based preemption Paolo Valente
2016-08-08 11:14 ` [PATCH V2 03/22] block, cfq: remove deep seek queues logic Paolo Valente
2016-08-08 11:14 ` [PATCH V2 04/22] block, cfq: remove SSD-related logic Paolo Valente
2016-08-08 11:15 ` [PATCH V2 05/22] block, cfq: get rid of hierarchical support Paolo Valente
2016-08-08 11:15 ` [PATCH V2 06/22] block, cfq: get rid of queue preemption Paolo Valente
2016-08-08 11:15 ` [PATCH V2 07/22] block, cfq: get rid of workload type Paolo Valente
2016-08-08 11:15 ` [PATCH V2 08/22] block, cfq: get rid of latency tunables Paolo Valente
2016-08-08 11:15 ` [PATCH V2 09/22] block, cfq: replace CFQ with the BFQ-v0 I/O scheduler Paolo Valente
2016-08-08 11:15 ` [PATCH V2 10/22] block, bfq: add full hierarchical scheduling and cgroups support Paolo Valente
2016-08-08 11:15 ` [PATCH V2 11/22] block, bfq: improve throughput boosting Paolo Valente
2016-08-08 11:15 ` [PATCH V2 12/22] block, bfq: modify the peak-rate estimator Paolo Valente
2016-08-08 11:15 ` [PATCH V2 13/22] block, bfq: add more fairness with writes and slow processes Paolo Valente
2016-08-08 11:15 ` [PATCH V2 14/22] block, bfq: improve responsiveness Paolo Valente
2016-08-08 11:15 ` [PATCH V2 15/22] block, bfq: reduce I/O latency for soft real-time applications Paolo Valente
2016-08-08 11:15 ` [PATCH V2 16/22] block, bfq: preserve a low latency also with NCQ-capable drives Paolo Valente
2016-08-08 11:15 ` [PATCH V2 17/22] block, bfq: reduce latency during request-pool saturation Paolo Valente
2016-08-08 11:15 ` [PATCH V2 18/22] block, bfq: add Early Queue Merge (EQM) Paolo Valente
2016-08-08 11:15 ` [PATCH V2 19/22] block, bfq: reduce idling only in symmetric scenarios Paolo Valente
2016-08-08 11:15 ` [PATCH V2 20/22] block, bfq: boost the throughput on NCQ-capable flash-based devices Paolo Valente
2016-08-08 11:15 ` [PATCH V2 21/22] block, bfq: boost the throughput with random I/O on NCQ-capable HDDs Paolo Valente
2016-08-08 11:15 ` [PATCH V2 22/22] block, bfq: handle bursts of queue activations Paolo Valente
2016-08-08 13:19 ` [PATCH V2 00/22] Replace the CFQ I/O Scheduler with BFQ Christoph Hellwig
2016-08-08 13:37   ` Paolo
2016-08-31 22:09   ` Mark Brown [this message]
2016-09-01  8:39     ` Linus Walleij
2016-09-05 15:56       ` Bartlomiej Zolnierkiewicz
2016-09-05 20:29         ` Paolo Valente
2016-09-08 11:51         ` Linus Walleij
2016-09-01 21:06     ` Eric Wheeler
2016-09-08 12:11       ` Hannes Reinecke

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=20160831220949.GD5967@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=osandov@fb.com \
    --cc=paolo.valente@linaro.org \
    --cc=tj@kernel.org \
    --cc=ulf.hansson@linaro.org \
    /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