[PATCH BUGFIX] pkt_sched: fix little service anomalies and possible crashes of qfq+

2013-02-26 Thread Paolo valente
in qfq_deactivate_agg to keep qfq+ work-conserving. Signed-off-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c | 66 +++ 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 6ed3

[PATCH RFC] pkt_sched: enable QFQ to support TSO/GSO

2012-10-29 Thread Paolo Valente
the comment to the function slot_insert. [1] http://marc.info/?l=linux-netdev&m=134968777902077&w=2 [2] http://marc.info/?l=linux-netdev&m=135096573507936&w=2 [3] http://marc.info/?l=linux-netdev&m=134902691421670&w=2 Signed-off-by: Paolo Valente --- ne

Re: [PATCH RFC] pkt_sched: enable QFQ to support TSO/GSO

2012-10-29 Thread Paolo Valente
Il 29/10/2012 12:08, Cong Wang ha scritto: On 10/29/2012 04:51 PM, Paolo Valente wrote: Hi, if the max packet size for some class (configured through tc) is violated by the actual size of the packets of that class, then QFQ would not schedule classes correctly, and the data structures

[PATCH RFC] pkt_sched: enable QFQ to support TSO/GSO

2012-10-29 Thread Paolo Valente
case described in the comment to the function slot_insert. [1] http://marc.info/?l=linux-netdev&m=134968777902077&w=2 [2] http://marc.info/?l=linux-netdev&m=135096573507936&w=2 [3] http://marc.info/?l=linux-netdev&m=134902691421670&w=2 Signed-off-by: Paolo Valente Tested

[PATCH 0/2] pkt_sched: sch_qfq: efficiency and codestyle improvements

2013-07-10 Thread Paolo Valente
operties of the mask. 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

[PATCH 2/2] pkt_sched: sch_qfq: remove forward declaration of qfq_update_agg_ts

2013-07-10 Thread Paolo Valente
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

[PATCH 1/2] pkt_sched: sch_qfq: improve efficiency of make_eligible

2013-07-10 Thread Paolo Valente
. 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

[PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-12 Thread Paolo Valente
/agg-sched.pdf [2] http://algo.ing.unimo.it/people/paolo/agg-sched/test-env.tgz Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 832 +++ 1 file changed, 570 insertions(+), 262 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index

[PATCH] pkt_sched: enable QFQ to support TSO/GSO

2012-11-05 Thread Paolo Valente
] http://marc.info/?l=linux-netdev&m=134968777902077&w=2 [2] http://marc.info/?l=linux-netdev&m=135096573507936&w=2 [3] http://marc.info/?l=linux-netdev&m=134902691421670&w=2 Signed-off-by: Paolo Valente Tested-by: Cong Wang Acked-by: Stephen Hemminger --- ne

[PATCH BUGFIX] pkt_sched: fix little service anomalies and possible crashes of qfq+

2012-12-19 Thread Paolo valente
rom qfq_deactivate_agg There is no need to invoke qfq_update_eligible in qfq_deactivate_agg to keep qfq+ work-conserving. Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 72 +++ 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/

Re: [PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-20 Thread Paolo Valente
Il 20/11/2012 00:48, David Miller ha scritto: From: Paolo Valente Date: Mon, 12 Nov 2012 17:48:33 +0100 [This patch received positive feedback from Stephen Hemminger ("put in net-next"), but no further feedback or decision. So I am (re)sending an updated version of it. The only d

[PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-20 Thread Paolo Valente
o.ing.unimo.it/people/paolo/agg-sched/test-env.tgz Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 834 +++ 1 file changed, 571 insertions(+), 263 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 9687fa1..fe1823a 10

[PATCH BUGFIX] pkt_sched: sch_qfq: remove a source of high packet delay/jitter

2013-07-15 Thread Paolo Valente
to make it coherent with the fact that the weight sum used by QFQ+ can now be lower than the maximum possible value. [1] P. Valente, "Extending WF2Q+ to support a dynamic traffic mix", Proceedings of AAA-IDEA'05, June 2005. Signed-off-by: Paolo Val

[PATCH BUGFIX] pkt_sched: sch_qfq: remove a source of high packet delay/jitter

2013-07-15 Thread Paolo Valente
to make it coherent with the fact that the weight sum used by QFQ+ can now be lower than the maximum possible value. [1] P. Valente, "Extending WF2Q+ to support a dynamic traffic mix", Proceedings of AAA-IDEA'05, June 2005. Signed-off-by: Paolo Val

Re: [PATCH BUGFIX] pkt_sched: sch_qfq: remove a source of high packet delay/jitter

2013-07-15 Thread Paolo Valente
Il 15/07/2013 20:12, Joe Perches ha scritto: On Mon, 2013-07-15 at 20:01 +0200, Paolo Valente wrote: QFQ+ inherits from QFQ a design choice that may cause a high packet delay/jitter and a severe short-term unfairness. [] diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c [] @@ -189,6

[PATCH BUGFIX 0/6] pkt_sched: fix little service anomalies and possible crashes of qfq+

2013-03-05 Thread Paolo valente
Il 26/02/2013 23:37, David Miller ha scritto: > From: Paolo valente > Date: Tue, 26 Feb 2013 18:02:46 +0100 > >> The portions of the code interested by each fix are small and do not >> overlap with each other, so I decided to provide just one patch >> (I hope tha

[PATCH BUGFIX 1/6] pkt_sched: properly cap timestamps in charge_actual_service

2013-03-05 Thread Paolo valente
ff-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 6ed3765..0f6e2db 100644 --- a/net/sched/sch_qfq.c +++ b/net/sched/sch_qfq.c @@ -299,6 +2

[PATCH BUGFIX 2/6] pkt_sched: fix the update of eligible-group sets

2013-03-05 Thread Paolo valente
ust replaces 1UL with 1ULL. Signed-off-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 0f6e2db..4cbbf79 100644 --- a/net/sched/sch_qfq.c +++ b/net/sched/sch_qf

[PATCH BUGFIX 3/6] pkt_sched: serve activated aggregates immediately if the scheduler is empty

2013-03-05 Thread Paolo valente
qfq_dequeue(), to reschedule an aggregate that finishes its budget, then the aggregate is now rescheduled by invoking directly the functions needed. Signed-off-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c | 36 ++-- 1 file changed, 22

[PATCH BUGFIX 4/6] pkt_sched: prevent budget from wrapping around after a dequeue

2013-03-05 Thread Paolo valente
latter would wrap around. This fix prevents the budget from wrapping around after any packet dequeue. Signed-off-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/net/sched/sch_qfq.c b/net/sched

[PATCH BUGFIX 6/6] pkt_sched: remove a useless invocation of qfq_update_eligible

2013-03-05 Thread Paolo valente
to be work conserving, because update_eligible() is always invoked also at the beginning of qfq_choose_next_agg(). This patch removes the additional invocation of update_eligible() in qfq_deactivate_agg(). Signed-off-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c |2 -- 1 fi

[PATCH BUGFIX 5/6] pkt_sched: do not allow virtual time to jump if an aggregate is in service

2013-03-05 Thread Paolo valente
rrently in service is eligible. As a consequence, to decide whether there is no eligible aggregate, QFQ+ must also check whether there is no aggregate in service. Signed-off-by: Paolo Valente Reviewed-by: Fabio Checconi --- net/sched/sch_qfq.c |3 ++- 1 file changed, 2 insertions(+), 1 deletio

Subject: [PATCH] sched: add missing group change to qfq_change_class

2012-08-05 Thread Paolo Valente
-off-by: Paolo Valente --- net/sched/sch_qfq.c | 95 +-- 1 file changed, 69 insertions(+), 26 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 9af01f3..e4723d3 100644 --- a/net/sched/sch_qfq.c +++ b/net/sched/sch_qfq.c

[PATCH] sched: fix virtual-start-time update in QFQ

2012-09-15 Thread Paolo Valente
value of the ratio max_class_pkt/weight_of_the_class with respect to that of cl. Inserting a class with a too high start time into the bucket list corrupts the data structure and may eventually lead to crashes. This patch limits the maximum start time assigned to a class. Signed-off-by: Paolo Valente

[PATCH RESEND] sched: add missing group change to qfq_change_class

2012-08-07 Thread Paolo Valente
for other classes. This patch adds the missing operations. Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 95 +-- 1 file changed, 69 insertions(+), 26 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 9af01f3

Re: [PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-21 Thread Paolo Valente
Il 20/11/2012 19:54, David Miller ha scritto: From: Paolo Valente Date: Tue, 20 Nov 2012 18:45:13 +0100 - struct sk_buff *skb; + struct sk_buff *skb = NULL; This is not really an improvement, Sorry for trying this silly short cut now the compiler can think that NULL is passed

[PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-22 Thread Paolo Valente
, can be found in [1]. [1] P. Valente, "Reducing the Execution Time of Fair-Queueing Schedulers" http://algo.ing.unimo.it/people/paolo/agg-sched/agg-sched.pdf Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 833 +++ 1 file ch

Re: [PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-23 Thread Paolo Valente
Il 23/11/2012 20:28, David Miller ha scritto: From: Paolo Valente Date: Thu, 22 Nov 2012 17:56:20 +0100 +/* + + */ Please don't add useless things like this in your patch. Sorry, I forgot to remove it after I moved the body of the comment to a better place. I have fixed and checked

[PATCH] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-11-23 Thread Paolo Valente
, can be found in [1]. [1] P. Valente, "Reducing the Execution Time of Fair-Queueing Schedulers" http://algo.ing.unimo.it/people/paolo/agg-sched/agg-sched.pdf Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 830 +++ 1 file ch

[PATCH RFC] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-09-30 Thread Paolo Valente
nimo.it/people/paolo/agg-sched/test-env.tgz Signed-off-by: Paolo Valente --- net/sched/sch_qfq.c | 826 --- 1 file changed, 592 insertions(+), 234 deletions(-) diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c index 211a212..af8f2a2 100644 -

Re: [PATCH RFC] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-10-01 Thread Paolo Valente
Il 01/10/2012 17:31, Stephen Hemminger ha scritto: On Sun, 30 Sep 2012 19:40:49 +0200 Paolo Valente wrote: Hi, this patch turns QFQ into QFQ+, a faster variant of QFQ that groups classes into aggregates, and uses the original QFQ scheduling algorithm to schedule aggregates instead of single

Re: [PATCH RFC] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-10-01 Thread Paolo Valente
Il 01/10/2012 17:31, Stephen Hemminger ha scritto: On Sun, 30 Sep 2012 19:40:49 +0200 Paolo Valente wrote: Hi, this patch turns QFQ into QFQ+, a faster variant of QFQ that groups classes into aggregates, and uses the original QFQ scheduling algorithm to schedule aggregates instead of single

Re: [PATCH RFC] pkt_sched: QFQ Plus: fair-queueing service at DRR cost

2012-10-01 Thread Paolo Valente
Il giorno 01/ott/2012, alle ore 19:52, Stephen Hemminger ha scritto: > On Mon, 01 Oct 2012 19:46:41 +0200 > Paolo Valente wrote: > >> Il 01/10/2012 17:31, Stephen Hemminger ha scritto: >>> On Sun, 30 Sep 2012 19:40:49 +0200 >>> Paolo Valente wrote: >>>

Re: [PATCH] cfq: fix starvation of asynchronous writes

2016-09-23 Thread Paolo Valente
rq = cfqq->next_rq; > + else > + cfq_log_cfqq(cfqq->cfqd, cfqq, "fifo=%p", rq); > > /* >* insert request into driver dispatch list > @@ -3989,7 +3996,7 @@ cfq_should_preempt(struct cfq_data *cfqd, struct > cfq_queue *new_cfqq

[PATCH RFC V8 05/22] block, cfq: get rid of hierarchical support

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 06/22] block, cfq: get rid of queue preemption

2016-07-27 Thread Paolo Valente
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 fab01e2..174dc94 100644 --- a/block/cfq-iosched.c +++ b/block/cfq

[PATCH RFC V8 07/22] block, cfq: get rid of workload type

2016-07-27 Thread Paolo Valente
-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 174dc94..df8fb826 100644 --- a/block/cfq

[PATCH RFC V8 08/22] block, cfq: get rid of latency tunables

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 00/22] Replace the CFQ I/O Scheduler with BFQ

2016-07-27 Thread Paolo Valente
rkload 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

[PATCH RFC V8 02/22] block, cfq: remove close-based preemption

2016-07-27 Thread Paolo Valente
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 18a7291..1b9fa10 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -2677,12 +2677,6 @@ static inline sector_t

[PATCH RFC V8 18/22] block, bfq: add Early Queue Merge (EQM)

2016-07-27 Thread Paolo Valente
-by: Mauro 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 980d321..27b51a7 100644 --- a/block/cfq-iosched.c +++ b

[PATCH RFC V8 13/22] block, bfq: add more fairness with writes and slow processes

2016-07-27 Thread Paolo Valente
the 5th 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 Valen

[PATCH RFC V8 01/22] block, cfq: remove queue merging for close cooperators

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 11/22] block, bfq: improve throughput boosting

2016-07-27 Thread Paolo Valente
roup.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(+

[PATCH RFC V8 17/22] block, bfq: reduce latency during request-pool saturation

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 20/22] block, bfq: boost the throughput on NCQ-capable flash-based devices

2016-07-27 Thread Paolo Valente
f 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

[PATCH RFC V8 22/22] block, bfq: handle bursts of queue activations

2016-07-27 Thread Paolo Valente
belonging to these bursts. Signed-off-by: Arianna Avanzini Signed-off-by: Paolo Valente --- block/cfq-iosched.c | 399 ++-- 1 file changed, 388 insertions(+), 11 deletions(-) diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index ae17421

[PATCH RFC V8 14/22] block, bfq: improve responsiveness

2016-07-27 Thread Paolo Valente
. 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 | 752 -- 2 files changed, 676 insertions(+), 79 deletions(-) diff --g

[PATCH RFC V8 10/22] block, bfq: add full hierarchical scheduling and cgroups support

2016-07-27 Thread Paolo Valente
ned-off-by: Paolo Valente Signed-off-by: Arianna Avanzini --- block/Kconfig.iosched |7 + block/cfq-iosched.c | 1837 +++-- 2 files changed, 1648 insertions(+), 196 deletions(-) diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched ind

[PATCH RFC V8 03/22] block, cfq: remove deep seek queues logic

2016-07-27 Thread Paolo Valente
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 |

[PATCH RFC V8 04/22] block, cfq: remove SSD-related logic

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 19/22] block, bfq: reduce idling only in symmetric scenarios

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 12/22] block, bfq: modify the peak-rate estimator

2016-07-27 Thread Paolo Valente
w-pass filter 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 Va

[PATCH RFC V8 16/22] block, bfq: preserve a low latency also with NCQ-capable drives

2016-07-27 Thread Paolo Valente
sk_sched/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 b

[PATCH RFC V8 21/22] block, bfq: boost the throughput with random I/O on NCQ-capable HDDs

2016-07-27 Thread Paolo Valente
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

[PATCH RFC V8 15/22] block, bfq: reduce I/O latency for soft real-time applications

2016-07-27 Thread Paolo Valente
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-off

Re: [PATCH 0/8] Throttled background buffered writeback v7

2016-09-09 Thread Paolo Valente
fs.h |3 > include/linux/wbt.h | 120 ++ > include/linux/writeback.h | 10 > include/trace/events/wbt.h | 153 > lib/Kconfig |3 > lib/Makefile|1 > lib/wbt.c

Re: [RFD] I/O scheduling in blk-mq

2016-08-31 Thread Paolo Valente
Il giorno 08/ago/2016, alle ore 22:09, Omar Sandoval ha scritto: > On Mon, Aug 08, 2016 at 04:09:56PM +0200, Paolo wrote: >> Hi Jens, Tejun, Christoph, all, >> AFAIK blk-mq does not yet feature I/O schedulers. In particular, there >> is no scheduler providing strong guarantees in terms of >> re

[PATCH V2 16/22] block, bfq: preserve a low latency also with NCQ-capable drives

2016-08-08 Thread Paolo Valente
sk_sched/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 9

[PATCH V2 03/22] block, cfq: remove deep seek queues logic

2016-08-08 Thread Paolo Valente
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 |

[PATCH V2 21/22] block, bfq: boost the throughput with random I/O on NCQ-capable HDDs

2016-08-08 Thread Paolo Valente
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

[PATCH V2 22/22] block, bfq: handle bursts of queue activations

2016-08-08 Thread Paolo Valente
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

[PATCH V2 14/22] block, bfq: improve responsiveness

2016-08-08 Thread Paolo Valente
. 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

[PATCH V2 18/22] block, bfq: add Early Queue Merge (EQM)

2016-08-08 Thread Paolo Valente
-by: Mauro 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

[PATCH V2 10/22] block, bfq: add full hierarchical scheduling and cgroups support

2016-08-08 Thread Paolo Valente
ned-off-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 ind

[PATCH V2 13/22] block, bfq: add more fairness with writes and slow processes

2016-08-08 Thread Paolo Valente
the 5th 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 Valen

[PATCH V2 20/22] block, bfq: boost the throughput on NCQ-capable flash-based devices

2016-08-08 Thread Paolo Valente
f 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

[PATCH V2 12/22] block, bfq: modify the peak-rate estimator

2016-08-08 Thread Paolo Valente
w-pass filter 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 Va

[PATCH V2 02/22] block, cfq: remove close-based preemption

2016-08-08 Thread Paolo Valente
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

[PATCH V2 06/22] block, cfq: get rid of queue preemption

2016-08-08 Thread Paolo Valente
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

[PATCH V2 11/22] block, bfq: improve throughput boosting

2016-08-08 Thread Paolo Valente
roup.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(+

[PATCH V2 04/22] block, cfq: remove SSD-related logic

2016-08-08 Thread Paolo Valente
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

[PATCH V2 05/22] block, cfq: get rid of hierarchical support

2016-08-08 Thread Paolo Valente
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

[PATCH V2 01/22] block, cfq: remove queue merging for close cooperators

2016-08-08 Thread Paolo Valente
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

[PATCH V2 15/22] block, bfq: reduce I/O latency for soft real-time applications

2016-08-08 Thread Paolo Valente
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-off

[PATCH V2 17/22] block, bfq: reduce latency during request-pool saturation

2016-08-08 Thread Paolo Valente
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

[PATCH V2 08/22] block, cfq: get rid of latency tunables

2016-08-08 Thread Paolo Valente
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

[PATCH V2 19/22] block, bfq: reduce idling only in symmetric scenarios

2016-08-08 Thread Paolo Valente
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

[PATCH V2 07/22] block, cfq: get rid of workload type

2016-08-08 Thread Paolo Valente
-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

[PATCH V2 00/22] Replace the CFQ I/O Scheduler with BFQ

2016-08-08 Thread Paolo Valente
get rid of hierarchical 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 o

[PATCH BUGFIX/IMPROVEMENT 3/4] block, bfq: update blkio stats outside the scheduler lock

2017-11-12 Thread Paolo Valente
difference, that the serialization caused by this lock has a little impact (at most ~5% of throughput reduction). [1] https://github.com/Algodev-github/IOSpeed Tested-by: Lee Tibbert Tested-by: Oleksandr Natalenko Signed-off-by: Paolo Valente Signed-off-by: Luca Miccio --- Documentation/block/bfq

[PATCH BUGFIX/IMPROVEMENT 1/4] doc, block, bfq: update max IOPS sustainable with BFQ

2017-11-12 Thread Paolo Valente
Signed-off-by: Paolo Valente Signed-off-by: Luca Miccio --- Documentation/block/bfq-iosched.txt | 17 +++-- 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Documentation/block/bfq-iosched.txt b/Documentation/block/bfq-iosched.txt index 3d6951d..7a93615 100644 --- a

[PATCH BUGFIX/IMPROVEMENT 4/4] block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP

2017-11-12 Thread Paolo Valente
: Oleksandr Natalenko Signed-off-by: Luca Miccio Signed-off-by: Paolo Valente --- Documentation/block/bfq-iosched.txt | 38 +++-- block/bfq-cgroup.c | 148 block/bfq-iosched.c | 14 ++-- block/bfq-iosched.h

[PATCH IMPROVEMENT/BUGFIX 0/4] block, bfq: increase sustainable IOPS and fix a bug

2017-11-12 Thread Paolo Valente
ml [2] https://github.com/Algodev-github/IOSpeed Luca Miccio (2): block, bfq: add missing invocations of bfqg_stats_update_io_add/remove block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP Paolo Valente (2): doc, block, bfq: update max IOPS sustainable with BFQ block, bfq: u

[PATCH BUGFIX/IMPROVEMENT 2/4] block, bfq: add missing invocations of bfqg_stats_update_io_add/remove

2017-11-12 Thread Paolo Valente
that are inserted into or extracted from its priority dispatch list. This commit fixes this mistake. Tested-by: Lee Tibbert Tested-by: Oleksandr Natalenko Signed-off-by: Paolo Valente Signed-off-by: Luca Miccio --- block/bfq-iosched.c | 21 ++--- 1 file changed, 18 insertions

Re: [PATCH IMPROVEMENT] block, bfq: limit sectors served with interactive weight raising

2018-01-11 Thread Paolo Valente
> Il giorno 28 dic 2017, alle ore 15:00, Holger Hoffstätte > ha scritto: > > > On 12/28/17 12:19, Paolo Valente wrote: > (snip half a tech report ;) > > So either this or the previous patch ("limit tags for writes and async I/O" > can lead to a hard,

Re: [PATCH IMPROVEMENT] block, bfq: limit sectors served with interactive weight raising

2018-01-12 Thread Paolo Valente
> Il giorno 12 gen 2018, alle ore 11:15, Holger Hoffstätte > ha scritto: > > On 01/12/18 06:58, Paolo Valente wrote: >> >> >>> Il giorno 28 dic 2017, alle ore 15:00, Holger Hoffstätte >>> ha scritto: >>> >>> >>>

[PATCH BUGFIX/IMPROVEMENT 2/2] block, bfq: limit sectors served with interactive weight raising

2018-01-13 Thread Paolo Valente
the allowed weight-raising period finishes. Thus this early ending of weight-raising reduces the amount of time during which these applications cause the problems described above. Tested-by: Oleksandr Natalenko Tested-by: Holger Hoffstätte Signed-off-by: Paolo Valente --- block/bfq-iosched.c

[PATCH BUGFIX/IMPROVEMENT 0/2] block, bfq: two pending patches

2018-01-13 Thread Paolo Valente
it somehow to the other schedulers. Thanks, Paolo [1] https://www.spinics.net/lists/linux-block/msg21586.html Paolo Valente (2): block, bfq: limit tags for writes and async I/O block, bfq: limit sectors served with interactive weight raising block/bfq-iosch

[PATCH BUGFIX/IMPROVEMENT 1/2] block, bfq: limit tags for writes and async I/O

2018-01-13 Thread Paolo Valente
[1] https://github.com/Algodev-github/S Tested-by: Oleksandr Natalenko Tested-by: Holger Hoffstätte Signed-off-by: Paolo Valente --- block/bfq-iosched.c | 77 + block/bfq-iosched.h | 12 + 2 files changed, 89 insertions(+) diff --git a

Re: v4.15 and I/O hang with BFQ

2018-01-30 Thread Paolo Valente
> Il giorno 30 gen 2018, alle ore 15:40, Ming Lei ha > scritto: > > On Tue, Jan 30, 2018 at 03:30:28PM +0100, Oleksandr Natalenko wrote: >> Hi. >> > ... >> systemd-udevd-271 [000] 4.311033: bfq_insert_requests: insert >> rq->0 >> systemd-udevd-271 [000] ...1 4.311037: blk

unify the interface of the proportional-share policy in blkio/io

2018-01-04 Thread Paolo Valente
Hi Tejun, Jens, all, the shares of storage resources are controlled through weights in the proportional-share policy of the blkio/io controllers of the cgroups subsystem. But, on blk-mq, this control doesn't work for any legacy application, service or tool. In a similar vein, in most of the inter

Re: [PATCH BUGFIX/IMPROVEMENT 0/2] block, bfq: two pending patches

2018-01-18 Thread Paolo Valente
> Il giorno 13 gen 2018, alle ore 12:05, Paolo Valente > ha scritto: > > Hi Jens, > here are again the two pending patches you asked me to resend [1]. One > of them, fixing read-starvation problems, was accompanied by a cover > letter. I'm pasting the content

[PATCH BUGFIX 0/2] block, bfq: fix two memory leaks related to cgroups

2018-01-09 Thread Paolo Valente
Hi Jens, these two patches fix two related memory leaks, the first reported in [1], and the second found by ourselves while fixing the first. Thanks, Paolo [1] https://www.mail-archive.com/linux-block@vger.kernel.org/msg16258.html Paolo Valente (2): block, bfq: put async queues for root bfq

[PATCH BUGFIX 2/2] bfq-sq, bfq-mq: release oom-queue ref to root group on exit

2018-01-09 Thread Paolo Valente
Ferrari Signed-off-by: Paolo Valente --- block/bfq-iosched.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index ea48b5c8f088..c56a495af2e8 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -5015,6 +5015,9 @@ static void bfq_exit_queue

[PATCH BUGFIX 1/2] block, bfq: put async queues for root bfq groups too

2018-01-09 Thread Paolo Valente
root group. This commit fixes bfq_pd_offline so that the latter executes the above missing operations for a root group too. Reported-by: Holger Hoffstätte Reported-by: Guoqing Jiang Signed-off-by: Davide Ferrari Signed-off-by: Paolo Valente --- block/bfq-cgroup.c | 7 +-- 1 file changed, 5

[PATCH BUGFIX V2 2/2] block, bfq: release oom-queue ref to root group on exit

2018-01-09 Thread Paolo Valente
Ferrari Signed-off-by: Paolo Valente --- block/bfq-iosched.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index ea48b5c8f088..c56a495af2e8 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -5015,6 +5015,9 @@ static void bfq_exit_queue

[PATCH BUGFIX V2 0/2] block, bfq: fix two memory leaks related to cgroups

2018-01-09 Thread Paolo Valente
Paolo Valente (2): block, bfq: put async queues for root bfq groups too block, bfq: release oom-queue ref to root group on exit block/bfq-cgroup.c | 7 +-- block/bfq-iosched.c | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) -- 2.15.1

[PATCH BUGFIX V2 1/2] block, bfq: put async queues for root bfq groups too

2018-01-09 Thread Paolo Valente
root group. This commit fixes bfq_pd_offline so that the latter executes the above missing operations for a root group too. Reported-by: Holger Hoffstätte Reported-by: Guoqing Jiang Signed-off-by: Davide Ferrari Signed-off-by: Paolo Valente --- block/bfq-cgroup.c | 7 +-- 1 file changed, 5

Re: unify the interface of the proportional-share policy in blkio/io

2018-01-09 Thread Paolo Valente
> Il giorno 09 gen 2018, alle ore 20:53, Jens Axboe ha > scritto: > > On 1/9/18 12:52 PM, Tejun Heo wrote: >> Hello, Paolo. >> >> On Thu, Jan 04, 2018 at 08:00:02PM +0100, Paolo Valente wrote: >>> The solution for the second type of parameters

  1   2   3   4   5   6   7   >