mbox series

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

Message ID 20180113110518.2519-1-paolo.valente@linaro.org
Headers show
Series block, bfq: two pending patches | expand

Message

Paolo Valente Jan. 13, 2018, 11:05 a.m. UTC
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 of that cover letter below.

The patch addresses (serious) starvation problems caused by
request-tag exhaustion, as explained in more detail in the commit
message. I started from the solution in the function
kyber_limit_depth, but then I had to define more articulate limits, to
counter starvation also in cases not covered in kyber_limit_depth.
If this solution proves to be effective, I'm willing to port 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-iosched.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++---
 block/bfq-iosched.h |  17 ++++++
 block/bfq-wf2q.c    |   3 +
 3 files changed, 169 insertions(+), 9 deletions(-)

--
2.15.1

Comments

Oleksandr Natalenko Jan. 13, 2018, 1:02 p.m. UTC | #1
Hi.

13.01.2018 12:05, Paolo Valente wrote:
> 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 of that cover letter below.

> 

> The patch addresses (serious) starvation problems caused by

> request-tag exhaustion, as explained in more detail in the commit

> message. I started from the solution in the function

> kyber_limit_depth, but then I had to define more articulate limits, to

> counter starvation also in cases not covered in kyber_limit_depth.

> If this solution proves to be effective, I'm willing to port 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-iosched.c | 158 

> +++++++++++++++++++++++++++++++++++++++++++++++++---

>  block/bfq-iosched.h |  17 ++++++

>  block/bfq-wf2q.c    |   3 +

>  3 files changed, 169 insertions(+), 9 deletions(-)

> 

> --

> 2.15.1


I'm running the system with these patches since the end of December, so 
with regard to stability and visible smoke:

Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>


for both of them.

Many thanks, Paolo!
Paolo Valente Jan. 18, 2018, 8:25 a.m. UTC | #2
> Il giorno 13 gen 2018, alle ore 12:05, Paolo Valente <paolo.valente@linaro.org> 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 of that cover letter below.

> 

> The patch addresses (serious) starvation problems caused by

> request-tag exhaustion, as explained in more detail in the commit

> message. I started from the solution in the function

> kyber_limit_depth, but then I had to define more articulate limits, to

> counter starvation also in cases not covered in kyber_limit_depth.

> If this solution proves to be effective, I'm willing to port it

> somehow to the other schedulers.

> 


Hi Jens,
have had to time to check these patches?  Sorry for pushing, but I
guess 4.16 is getting closer, and these patches are performance
critical; especially the first, which solves a starvation problem.

Thanks,
Paolo

> 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-iosched.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++---

> block/bfq-iosched.h |  17 ++++++

> block/bfq-wf2q.c    |   3 +

> 3 files changed, 169 insertions(+), 9 deletions(-)

> 

> --

> 2.15.1
Jens Axboe Jan. 18, 2018, 3:23 p.m. UTC | #3
On 1/13/18 4:05 AM, Paolo Valente wrote:
> 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 of that cover letter below.

> 

> The patch addresses (serious) starvation problems caused by

> request-tag exhaustion, as explained in more detail in the commit

> message. I started from the solution in the function

> kyber_limit_depth, but then I had to define more articulate limits, to

> counter starvation also in cases not covered in kyber_limit_depth.

> If this solution proves to be effective, I'm willing to port it

> somehow to the other schedulers.


It's something we've been doing in the old request layer for tagging for
a long time (more than a decade), so a generic (and fast) solution that
covers all cases for blk-mq-tag would indeed be great.

For now, I have applied these for 4.16, thanks.

-- 
Jens Axboe