association in bio-cloning functions.
Fixes: da2f0f74cf7d ("Btrfs: add support for blkio controllers")
Cc: sta...@vger.kernel.org # v4.3+
Signed-off-by: Paolo Valente
Reviewed-by: Nikolay Borisov
Reviewed-by: Jeff Moyer
Acked-by: Tejun Heo
---
Fixed a compilation issue reported by kbuild
hed/bfq-v1-suite-
results.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 932adf
all actions
are aimed at boosting the throughput, except for when
throughput-boosting actions would jeopardize throughput-distribution
and latency guarantees. Full details in the commits turning CFQ into
BFQ.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c |
disabling idling boosts the throughput on
NCQ-capable rotational devices. To not break service guarantees,
idling is disabled for NCQ-enabled rotational devices only when the
same symmetry conditions considered in the previous patches hold.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
belonging to these bursts.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 401 ++--
1 file changed, 389 insertions(+), 12 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 50dab96
.
http://algogroup.unimore.it/people/paolo/disk_sched/mst-2015.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/Kconfig.iosched | 3 +-
block/cfq-iosched.c | 762 --
2 files changed, 681 insertions(+), 84 deletions(-)
diff --g
Andreolini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 738 +---
1 file changed, 707 insertions(+), 31 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index d137ed2..cb0b44b 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq
-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/Kconfig.iosched |7 +
block/cfq-iosched.c | 1825 -
2 files changed, 1650 insertions(+), 182 deletions(-)
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
index 92a8475
Annual International Systems and Storage Conference
(SYSTOR '12), June 2012.
Slightly extended version:
http://algogroup.unimore.it/people/paolo/disk_sched/bfq-v1-suite-
results.pdf
Signed-off-by: Paolo Valente
Signed-off-
of the throughput. In this case, to
guarantee the desired throughput distribution, the device must be
prevented from prefetching requests. This is exactly what this patch
does in asymmetric scenarios.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 154
ter
should converge more or less quickly to the right value.
With the current values of the constants used in the filter, the
latter seems to effectively smooth fluctuations and allow the
estimator to converge to the actual peak rate with all the devices we
tested.
Signed-off-by: Paolo Valente
Sig
Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 13 -
1 file changed, 13 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 10761b5..1ab8898 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2696,12 +2696,6 @@ static inline sector_t
Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 99 +
1 file changed, 1 insertion(+), 98 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index afe42fc..5e0daaf 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq
unimore.it/people/paolo/disk_sched/bfq-v1-suite-
results.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 83 ++---
1 file changed, 41 insertions(+), 42
strong
throughput-distribution and latency guarantees. This commit then
removes the CFQ mechanism.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 18 ++
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/block/cfq-iosched.c b/block
. For this reason, BFQ implements
hierarchical scheduling in such an accurate way to fully preserve its
tight service guarantees.
This commit removes CFQ's hierarchical support, while one of the next
commit then adds BFQ's one.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block
t, we also explain in
even more detail why the heuristic removed in this commit fails with
an irregularly interleaved I/O.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 349 +---
1 file changed, 4 insertio
ony
requirements, then the end of the weight-raising period for the queue
is moved forward, and so on. Note that an application whose associated
queue never happens to be empty when it expires will never have the
opportunity to be deemed as soft real-time.
Signed-off-by: Paolo Valente
Signed-
one. Along the same line, if there are weight-raised queues,
then this patch halves the service rate of async (write) requests for
non-weight-raised queues.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 66
warnings. The commit
introducing low-latency heuristics in BFQ then restores only the
boolean low_latency tunable.
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 36
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/block/cfq-iosched.c b/block
the First Workshop on Mobile System
Technologies (MST-2015), May 2015.
http://algogroup.unimore.it/people/paolo/disk_sched/mst-2015.pdf
Signed-off-by: Arianna Avanzini
Signed-off-by: Riccardo Pizzetti
Signed-off-by: Samuele Zecchini
Signed-off-by: Paolo Valente
---
block/cfq-iosch
-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 131 +++-
1 file changed, 26 insertions(+), 105 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 5e0daaf..329ed2b 100644
--- a/block/cfq
cal support
block, cfq: get rid of queue preemption
block, cfq: get rid of workload type
block, bfq: add full hierarchical scheduling and cgroups support
block, bfq: add Early Queue Merge (EQM)
block, bfq: reduce idling only in symmetric scenarios
block, bfq: handle bursts of queue activations
Il giorno 13/apr/2016, alle ore 22:41, Tejun Heo ha scritto:
> Hello,
>
> Sorry about the long delay.
>
> On Wed, Mar 09, 2016 at 07:34:15AM +0100, Paolo Valente wrote:
>> This is probably the focal point of our discussion. Unfortunately, I
>> am still not convi
Il giorno 22/apr/2016, alle ore 20:13, Tejun Heo ha scritto:
> Hello, Paolo.
>
> On Wed, Apr 20, 2016 at 11:32:23AM +0200, Paolo wrote:
>> This malfunction seems related to a blkcg behavior that I did not
>> expect: the sequential writer changes group continuously. It moves
>> from the root
Il giorno 22/apr/2016, alle ore 20:41, Tejun Heo ha scritto:
> Hello, Paolo.
>
> On Fri, Apr 22, 2016 at 08:19:47PM +0200, Paolo Valente wrote:
>>> So, a kworker would jump through different workqueues and issue IOs
>>> for different writeback domains an
Il giorno 22/apr/2016, alle ore 21:32, Tejun Heo ha scritto:
> Hello, Paolo.
>
> On Fri, Apr 22, 2016 at 09:05:14PM +0200, Paolo Valente wrote:
>>> Ah, right, I was confused. cic is always associated with the task and
>>> yes a writeback worker can trigger blkc
Il giorno 02/nov/2015, alle ore 17:25, Jens Axboe ha scritto:
> On 11/02/2015 07:31 AM, Paolo Valente wrote:
>> From: Arianna Avanzini
>>
>> In single-queue (block layer) mode,the function null_rq_prep_fn stops
>> the device if alloc_cmd fails. Then, on
Il giorno 02/nov/2015, alle ore 17:14, Jens Axboe ha scritto:
> On 11/02/2015 07:31 AM, Paolo Valente wrote:
>> For the Timer IRQ mode (i.e., when command completions are delayed),
>> there is one timer for each CPU. Each of these timers
>> . has a comple
From: Arianna Avanzini
This commit at least doubles the maximum value for
completion_nsec. This helps in special cases where one wants/needs to
emulate an extremely slow I/O (for example to spot bugs).
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
drivers/block/null_blk.c
null_blk: change type of completion_nsec to unsigned long
Paolo Valente (1):
null_blk: set a separate timer for each command
drivers/block/null_blk.c | 94 +---
1 file changed, 33 insertions(+), 61 deletions(-)
--
1.9.1
--
To unsubscribe from
, the
device is properly restarted for all irqmodes on completions.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna AVanzini
---
drivers/block/null_blk.c | 29 -
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/drivers/block/null_blk.c b/drivers/block
the
desired one.
This commit addresses this issue by replacing per-CPU timers with
per-command timers, i.e., by associating an individual timer with each
command.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
drivers/block/null_blk.c | 79
Hi
Il giorno 17/feb/2016, alle ore 18:02, Tejun Heo ha scritto:
> Hello,
>
> On Wed, Feb 17, 2016 at 10:02:00AM +0100, Paolo Valente wrote:
>> your first statement “bfq is using bandwidth as the virtual time" is
>> not very clear to me. In contrast, after that you r
Il giorno 20/feb/2016, alle ore 11:23, Paolo Valente
ha scritto:
> Hi
>
>
> If both processes reach ~100MB/s during their service slot, then, with
> both a budget- and time-based policy, we can meet the above bandwidth
> requirements by just assigning 9 and 1 as
assigned to processes and groups of processes). For this
reason, the additional condition for disabling idling for a
constantly-seeky queue is that all queues with pending or in-flight
requests are constantly seeky.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/bfq.h
-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 131 +++-
1 file changed, 26 insertions(+), 105 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 48ab681..15ee70d 100644
--- a/block/cfq
ter
should converge more or less quickly to the right value.
With the current values of the constants used in the filter, the
latter seems to effectively smooth fluctuations and allow the
estimator to converge to the actual peak rate with all the devices we
tested.
Signed-off-by: Paolo Valente
Sig
, by properly
restoring the weight-raising state of a queue when it gets back to a
non-merged state.
Signed-off-by: Arianna Avanzini
Signed-off-by: Mauro Andreolini
Signed-off-by: Paolo Valente
---
block/bfq.h | 85 ++-
block/cfq-iosched.c | 713
the First Workshop on Mobile System
Technologies (MST-2015), May 2015.
http://algogroup.unimore.it/people/paolo/disk_sched/mst-2015.pdf
Signed-off-by: Arianna Avanzini
Signed-off-by: Riccardo Pizzetti
Signed-off-by: Samuele Zecchini
Signed-off-by: Paolo Valente
---
block/bfq.h
unimore.it/people/paolo/disk_sched/bfq-v1-suite-
results.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 86 -
1 file changed, 45 insertions(+), 41
ony
requirements, then the end of the weight-raising period for the queue
is moved forward, and so on. Note that an application whose associated
queue never happens to be empty when it expires will never have the
opportunity to be deemed as soft real-time.
Signed-off-by: Paolo Valente
Signed-
they need one.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/bfq.h | 2 ++
block/cfq-iosched.c | 53 +++--
2 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/block/bfq.h b/block/bfq.h
index 68969ba..2960e5d
Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 99 +
1 file changed, 1 insertion(+), 98 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 33ae8dd..48ab681 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq
d type
block, bfq: add full hierarchical scheduling and cgroups support
block, bfq: add Early Queue Merge (EQM)
block, bfq: reduce idling only in symmetric scenarios
block, bfq: handle bursts of queue activations
Fabio Checconi (1):
block, cfq: replace CFQ with the BFQ-v0 I/O scheduler
all actions
are aimed at boosting the throughput, except for when
throughput-boosting actions would jeopardize throughput-distribution
and latency guarantees. Full details in the commits turning CFQ into
BFQ.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c |
http://algogroup.unimore.it/people/paolo/disk_sched/bfq-v1-suite-
results.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/bfq.h | 5 +
block/cfq-iosched.c | 51 ++
interface is not used (as explained in the
description of the previous patch). In particular, since each node has
a full scheduler, each group can be assigned its own weight.
Signed-off-by: Fabio Checconi
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/Kconfig.iosched
belonging to these bursts.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/bfq.h | 38 +++
block/cfq-iosched.c | 316
2 files changed, 334 insertions(+), 20 deletions(-)
diff --git a/block/bfq.h b/block
t, we also explain in
even more detail why the heuristic removed in this commit fails with
an irregularly interleaved I/O.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 349 +---
1 file changed, 4 insertio
hed/bfq-v1-suite-
results.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 281943
, "Evolution of the BFQ Storage I/O
Scheduler", Proceedings of the First Workshop on Mobile System
Technologies (MST-2015), May 2015.
http://algogroup.unimore.it/people/paolo/disk_sched/mst-2015.pdf
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/Kconf
strong
throughput-distribution and latency guarantees. This commit then
removes the CFQ mechanism.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 18 ++
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/block/cfq-iosched.c b/block
. For this reason, BFQ implements
hierarchical scheduling in such an accurate way to fully preserve its
tight service guarantees.
This commit removes CFQ's hierarchical support, while one of the next
commit then adds BFQ's one.
Signed-off-by: Arianna Avanzini
Signed-off-by: Paolo Valente
---
block
warnings. The commit
introducing low-latency heuristics in BFQ then restores only the
boolean low_latency tunable.
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 31 +++
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq
Avanzini
Signed-off-by: Paolo Valente
---
block/cfq-iosched.c | 13 -
1 file changed, 13 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 72def9c..3084f99 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2665,12 +2665,6 @@ static inline sector_t
of the throughput. In this case, to
guarantee the desired throughput distribution, the device must be
prevented from prefetching requests. This is exactly what this patch
does in asymmetric scenarios.
Signed-off-by: Paolo Valente
Signed-off-by: Arianna Avanzini
---
block/cfq-iosched.c | 86
It is in the first patch.
> 2) That static inline forward declaration is ugly, better to remove
> the inline tag (let the compiler handle it) or move the function
> above all the call sites.
>
Done by the second patch.
Paolo Valente (2):
pkt_sched: sch_qfq: improve efficienc
This patch removes the forward declaration of qfq_update_agg_ts, by moving
the definition of the function above its first call. This patch also
removes a useless forward declaration of qfq_schedule_agg.
Reported-by: David S. Miller
Signed-off-by: Paolo Valente
---
net/sched/sch_qfq.c | 118
.
Reported-by: David S. Miller
Reported-by: David Laight
Signed-off-by: Paolo Valente
---
net/sched/sch_qfq.c | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c
index d51852b..2a0ed50 100644
--- a/net/sched/sch_qfq.c
+++ b/net
Hi,
that's apparently hard to solve inside bfq. The the ioc of the task is being
exited while the task is still inside the code for having an I/O request
served. Is still normal?
Thanks,
Polo
> Il giorno 20 ott 2020, alle ore 08:15, Mike Galbraith ha
> scritto:
>
> [ 1917.361401]
> Il giorno 3 feb 2021, alle ore 12:43, Jan Kara ha scritto:
>
> On Thu 28-01-21 18:54:05, Paolo Valente wrote:
>>
>>
>>> Il giorno 26 gen 2021, alle ore 17:18, Jens Axboe ha
>>> scritto:
>>>
>>> On 1/26/21 3:50 AM, Paolo Va
> Il giorno 5 feb 2021, alle ore 11:16, Paolo Valente
> ha scritto:
>
>
>
>> Il giorno 3 feb 2021, alle ore 12:43, Jan Kara ha scritto:
>>
>> On Thu 28-01-21 18:54:05, Paolo Valente wrote:
>>>
>>>
>>>> Il giorno 26 gen 2021
> Il giorno 10 feb 2021, alle ore 16:21, Jens Axboe ha
> scritto:
>
> On 2/10/21 8:20 AM, Oleksandr Natalenko wrote:
>> On Wed, Feb 10, 2021 at 12:13:29PM +0100, Paolo Valente wrote:
>>>
>>>
>>>> Il giorno 29 gen 2021, alle ore 11:51,
> Il giorno 29 gen 2021, alle ore 11:51, Chunguang Xu ha
> scritto:
>
> From: Chunguang Xu
>
> The if statement at the end of the function is obviously useless,
> maybe we can delete it.
>
Thanks for spotting this mistake.
Acked-by: Paolo Valente
>
> Il giorno 29 gen 2021, alle ore 11:51, Chunguang Xu ha
> scritto:
>
> From: Chunguang Xu
>
> The function name bfq_may_expire_for_budg_timeout() may be misspelled,
> try to fix it.
>
Ok for me to make this name longer.
Thanks,
Paolo
> Signed-off-by: Chunguang Xu
> ---
>
> Il giorno 12 mar 2021, alle ore 12:08, brookxu ha
> scritto:
>
> From: Chunguang Xu
>
Hi Chunguang,
> Tasks in the production environment can be roughly divided into
> three categories: emergency tasks, ordinary tasks and offline
> tasks. Emergency tasks need to be scheduled in real
> Il giorno 4 mar 2021, alle ore 18:46, Paolo Valente
> ha scritto:
>
> Hi,
> this is the V2 for the third and last batches of patches that I
> proposed recently [1].
>
> I've tried to address all issues raised in [1].
>
> In more detail, main changes for V
> Il giorno 26 gen 2021, alle ore 17:15, Jens Axboe ha
> scritto:
>
> On 1/26/21 3:51 AM, Paolo Valente wrote:
>> @@ -2809,6 +2853,12 @@ void bfq_release_process_ref(struct bfq_data *bfqd,
>> struct bfq_queue *bfqq)
>>
> Il giorno 26 gen 2021, alle ore 17:17, Jens Axboe ha
> scritto:
>
> On 1/26/21 3:50 AM, Paolo Valente wrote:
>> diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
>> index 445cef9c0bb9..a83149407336 100644
>> --- a/block/bfq-iosched.c
>> +++ b/block/
and bfqq agree on serving this new I/O request as
soon as possible. So this commit puts this new I/O request directly
into the dispatch list.
Tested-by: Jan Kara
Acked-by: Jan Kara
Signed-off-by: Paolo Valente
---
block/bfq-iosched.c | 44 +++-
1 file changed
than throughput benefits. This commit
keeps shared queues out of the waker-detection mechanism.
Tested-by: Jan Kara
Signed-off-by: Paolo Valente
---
block/bfq-iosched.c | 12 +++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index
d comments as requested in "block, bfq: put reqs of
waker and woken in dispatch list"
Thanks,
Paolo
[1] https://www.spinics.net/lists/linux-block/msg64333.html
Paolo Valente (6):
block, bfq: always inject I/O of queues blocked by wakers
block, bfq: put reqs of waker and woken in d
will be happy to let bfqq's waker freely inject
I/O when they have no I/O. So this commit makes new_bfqq inherit
bfqq's waker.
Tested-by: Jan Kara
Signed-off-by: Paolo Valente
---
block/bfq-iosched.c | 42 +++---
1 file changed, 39 insertions(+), 3 deletions
is not served. So there is virtually no risk
of loss of bandwidth for bfqq if this woken queue has I/O dispatched
while bfqq is waiting for new I/O. In contrast, this extra I/O
injection boosts throughput. This commit performs this extra
injection.
Tested-by: Jan Kara
Signed-off-by: Paolo Valente
When the io_latency heuristic is off, bfq_queues must not start to be
weight-raised. Unfortunately, by mistake, this may happen when the
state of a previously weight-raised bfq_queue is resumed after a queue
split. This commit fixes this error.
Tested-by: Jan Kara
Signed-off-by: Paolo Valente
shows a throughput boost of 40%, with
a quadcore. Since BFQ's execution time amounts to ~50% of the total
per-request processing time, the above throughput boost implies that
BFQ's overhead is reduced by more than 50%.
Tested-by: Jan Kara
Signed-off-by: Paolo Valente
---
block/bfq-cgroup.c | 2
I'm thinking of a way to debug this too. The symptom may hint at a
use-after-free. Could you enable KASAN in your tests? (On the flip
side, I know this might change timings, thereby making the fault
disappear).
Thanks,
Paolo
> Il giorno 5 mar 2021, alle ore 10:27, Ming Lei ha
> scritto:
>
1101 - 1178 of 1178 matches
Mail list logo