From: Bart Van Assche <Bart.VanAssche@sandisk.com>
To: "paolo.valente@linaro.org" <paolo.valente@linaro.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"fchecconi@gmail.com" <fchecconi@gmail.com>,
"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"axboe@kernel.dk" <axboe@kernel.dk>,
"avanzini.arianna@gmail.com" <avanzini.arianna@gmail.com>,
"broonie@kernel.org" <broonie@kernel.org>,
"tj@kernel.org" <tj@kernel.org>,
"ulf.hansson@linaro.org" <ulf.hansson@linaro.org>
Subject: Re: [PATCH RFC 00/14] Add the BFQ I/O Scheduler to blk-mq
Date: Tue, 14 Mar 2017 16:32:47 +0000 [thread overview]
Message-ID: <1489509154.2676.6.camel@sandisk.com> (raw)
In-Reply-To: <81048010-02AB-4A7A-8C10-FAF7E3242DCC@linaro.org>
On Tue, 2017-03-14 at 16:35 +0100, Paolo Valente wrote:
> > Il giorno 07 mar 2017, alle ore 02:00, Bart Van Assche <bart.vanassche@=
sandisk.com> ha scritto:
> >=20
> > Additionally, the complexity of the code is huge. Just like for CFQ,
> > sooner or later someone will run into a bug or a performance issue
> > and will post a patch to fix it. However, the complexity of BFQ is
> > such that a source code review alone won't be sufficient to verify
> > whether or not such a patch negatively affects a workload or device
> > that has not been tested by the author of the patch. This makes me
> > wonder what process should be followed to verify future BFQ patches?
>=20
> Third and last, a proposal: why don't we discuss this issue at LSF
> too? In particular, we could talk about the parts of BFQ that seem
> more complex to understand, until they become clearer to you. Then I
> could try to understand what helped make them clearer, and translate
> it into extra comments in the code or into other, more radical
> changes.
Hello Paolo,
Sorry if my comment was not clear enough. Suppose that e.g. someone would
like to modify the following code:
static int bfq_min_budget(struct bfq_data *bfqd)
{
if (bfqd->budgets_assigned < bfq_stats_min_budgets)
return bfq_default_max_budget / 32;
else
return bfqd->bfq_max_budget / 32;
}
How to predict the performance impact of any changes in e.g. this function?
It is really great that a performance benchmark is available. But what shou=
ld
a developer do who only has access to a small subset of all the storage
devices that are supported by the Linux kernel and hence who can not run th=
e
benchmark against every supported storage device? Do developers who do not
fully understand the BFQ algorithms and who run into a performance problem
have any other option than trial and error for fixing such performance issu=
es?
Thanks,
Bart.=
WARNING: multiple messages have this Message-ID (diff)
From: Bart Van Assche <Bart.VanAssche@sandisk.com>
To: "paolo.valente@linaro.org" <paolo.valente@linaro.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"fchecconi@gmail.com" <fchecconi@gmail.com>,
"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"axboe@kernel.dk" <axboe@kernel.dk>,
"avanzini.arianna@gmail.com" <avanzini.arianna@gmail.com>,
"broonie@kernel.org" <broonie@kernel.org>,
"tj@kernel.org" <tj@kernel.org>,
"ulf.hansson@linaro.org" <ulf.hansson@linaro.org>
Subject: Re: [PATCH RFC 00/14] Add the BFQ I/O Scheduler to blk-mq
Date: Tue, 14 Mar 2017 16:32:47 +0000 [thread overview]
Message-ID: <1489509154.2676.6.camel@sandisk.com> (raw)
In-Reply-To: <81048010-02AB-4A7A-8C10-FAF7E3242DCC@linaro.org>
On Tue, 2017-03-14 at 16:35 +0100, Paolo Valente wrote:
> > Il giorno 07 mar 2017, alle ore 02:00, Bart Van Assche <bart.vanassche@sandisk.com> ha scritto:
> >
> > Additionally, the complexity of the code is huge. Just like for CFQ,
> > sooner or later someone will run into a bug or a performance issue
> > and will post a patch to fix it. However, the complexity of BFQ is
> > such that a source code review alone won't be sufficient to verify
> > whether or not such a patch negatively affects a workload or device
> > that has not been tested by the author of the patch. This makes me
> > wonder what process should be followed to verify future BFQ patches?
>
> Third and last, a proposal: why don't we discuss this issue at LSF
> too? In particular, we could talk about the parts of BFQ that seem
> more complex to understand, until they become clearer to you. Then I
> could try to understand what helped make them clearer, and translate
> it into extra comments in the code or into other, more radical
> changes.
Hello Paolo,
Sorry if my comment was not clear enough. Suppose that e.g. someone would
like to modify the following code:
static int bfq_min_budget(struct bfq_data *bfqd)
{
if (bfqd->budgets_assigned < bfq_stats_min_budgets)
return bfq_default_max_budget / 32;
else
return bfqd->bfq_max_budget / 32;
}
How to predict the performance impact of any changes in e.g. this function?
It is really great that a performance benchmark is available. But what should
a developer do who only has access to a small subset of all the storage
devices that are supported by the Linux kernel and hence who can not run the
benchmark against every supported storage device? Do developers who do not
fully understand the BFQ algorithms and who run into a performance problem
have any other option than trial and error for fixing such performance issues?
Thanks,
Bart.
next prev parent reply other threads:[~2017-03-14 16:32 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-04 16:01 [PATCH RFC 00/14] Add the BFQ I/O Scheduler to blk-mq Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 01/14] block, bfq: introduce the BFQ-v0 I/O scheduler as an extra scheduler Paolo Valente
2017-03-05 15:16 ` Jens Axboe
2017-03-05 16:02 ` Paolo Valente
2017-03-05 16:02 ` Paolo Valente
2017-03-06 20:46 ` Jens Axboe
2017-03-14 11:28 ` Paolo Valente
2017-03-14 11:28 ` Paolo Valente
2017-03-06 19:40 ` Bart Van Assche
2017-03-06 19:40 ` Bart Van Assche
2017-03-14 14:18 ` Paolo Valente
2017-03-14 14:18 ` Paolo Valente
2017-03-18 12:08 ` Paolo Valente
2017-03-18 12:08 ` Paolo Valente
2017-03-18 15:24 ` Bart Van Assche
2017-03-18 15:24 ` Bart Van Assche
2017-03-19 11:45 ` Paolo Valente
2017-03-19 11:45 ` Paolo Valente
2017-03-07 23:22 ` Jens Axboe
2017-03-18 12:41 ` Paolo Valente
2017-03-18 12:41 ` Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 02/14] block, bfq: add full hierarchical scheduling and cgroups support Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 03/14] block, bfq: improve throughput boosting Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 04/14] block, bfq: modify the peak-rate estimator Paolo Valente
2017-03-07 0:47 ` Bart Van Assche
2017-03-07 0:47 ` Bart Van Assche
2017-03-04 16:01 ` [PATCH RFC 05/14] block, bfq: add more fairness with writes and slow processes Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 06/14] block, bfq: improve responsiveness Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 07/14] block, bfq: reduce I/O latency for soft real-time applications Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 08/14] block, bfq: preserve a low latency also with NCQ-capable drives Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 09/14] block, bfq: reduce latency during request-pool saturation Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 10/14] block, bfq: add Early Queue Merge (EQM) Paolo Valente
2017-03-07 17:44 ` Jens Axboe
2017-03-15 12:01 ` Paolo Valente
2017-03-15 12:01 ` Paolo Valente
2017-03-15 15:47 ` Jens Axboe
2017-03-15 16:30 ` Jens Axboe
2017-03-15 16:59 ` Paolo Valente
2017-03-15 16:59 ` Paolo Valente
2017-03-15 21:00 ` Jens Axboe
2017-03-18 10:33 ` Paolo Valente
2017-03-18 10:33 ` Paolo Valente
2017-03-15 16:56 ` Jens Axboe
2017-03-15 17:02 ` Paolo Valente
2017-03-15 17:02 ` Paolo Valente
2017-03-15 21:01 ` Jens Axboe
2017-03-04 16:01 ` [PATCH RFC 11/14] block, bfq: reduce idling only in symmetric scenarios Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 12/14] block, bfq: boost the throughput on NCQ-capable flash-based devices Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 13/14] block, bfq: boost the throughput with random I/O on NCQ-capable HDDs Paolo Valente
2017-03-07 0:54 ` Bart Van Assche
2017-03-07 0:54 ` Bart Van Assche
2017-03-14 14:12 ` Paolo Valente
2017-03-14 14:12 ` Paolo Valente
2017-03-04 16:01 ` [PATCH RFC 14/14] block, bfq: handle bursts of queue activations Paolo Valente
2017-03-06 7:43 ` [PATCH RFC 00/14] Add the BFQ I/O Scheduler to blk-mq Markus Trippelsdorf
2017-03-31 13:27 ` Paolo Valente
2017-03-31 13:27 ` Paolo Valente
2017-03-07 0:22 ` Bart Van Assche
2017-03-07 0:22 ` Bart Van Assche
2017-03-14 14:12 ` Paolo Valente
2017-03-14 14:12 ` Paolo Valente
2017-03-07 1:00 ` Bart Van Assche
2017-03-07 1:00 ` Bart Van Assche
2017-03-14 15:35 ` Paolo Valente
2017-03-14 15:35 ` Paolo Valente
2017-03-14 15:42 ` Jens Axboe
2017-03-14 16:32 ` Bart Van Assche [this message]
2017-03-14 16:32 ` Bart Van Assche
2017-03-18 10:52 ` Paolo Valente
2017-03-18 10:52 ` Paolo Valente
2017-03-18 17:09 ` Linus Walleij
2017-03-18 17:46 ` Bart Van Assche
2017-03-18 17:46 ` Bart Van Assche
2017-03-18 20:46 ` Linus Walleij
2017-03-19 12:14 ` Paolo Valente
2017-03-19 12:14 ` Paolo Valente
2017-03-20 18:40 ` Jens Axboe
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=1489509154.2676.6.camel@sandisk.com \
--to=bart.vanassche@sandisk.com \
--cc=avanzini.arianna@gmail.com \
--cc=axboe@kernel.dk \
--cc=broonie@kernel.org \
--cc=fchecconi@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--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 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.