diff mbox series

[BUGFIX,V2] block, bfq: fix operator in BFQQ_TOTALLY_SEEKY

Message ID 20190622204416.33871-1-paolo.valente@linaro.org
State Accepted
Commit e6feaf215f07dd98d03ee783c9dd4c7f7e55b74d
Headers show
Series [BUGFIX,V2] block, bfq: fix operator in BFQQ_TOTALLY_SEEKY | expand

Commit Message

Paolo Valente June 22, 2019, 8:44 p.m. UTC
By mistake, there is a '&' instead of a '==' in the definition of the
macro BFQQ_TOTALLY_SEEKY. This commit replaces the wrong operator with
the correct one.

Fixes: commit 7074f076ff15 ("block, bfq: do not tag totally seeky queues as soft rt")
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>

---
 block/bfq-iosched.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.20.1

Comments

Jens Axboe June 24, 2019, 4:12 p.m. UTC | #1
On 6/22/19 2:44 PM, Paolo Valente wrote:
> By mistake, there is a '&' instead of a '==' in the definition of the

> macro BFQQ_TOTALLY_SEEKY. This commit replaces the wrong operator with

> the correct one.


A bit worrying that this wasn't caught in testing, as it would have
resulted in _any_ queue being positive for totally seeky?

Anyway, applied.

-- 
Jens Axboe
Paolo Valente June 24, 2019, 7:18 p.m. UTC | #2
> Il giorno 24 giu 2019, alle ore 18:12, Jens Axboe <axboe@kernel.dk> ha scritto:

> 

> On 6/22/19 2:44 PM, Paolo Valente wrote:

>> By mistake, there is a '&' instead of a '==' in the definition of the

>> macro BFQQ_TOTALLY_SEEKY. This commit replaces the wrong operator with

>> the correct one.

> 

> A bit worrying that this wasn't caught in testing, as it would have

> resulted in _any_ queue being positive for totally seeky?

> 


Fortunately there's a somewhat reassuring explanation.  The commit
introducing this macro prevented seeky queues from being considered
soft real-time.  And, to be more selective, it actually filtered out
only totally seeky queues, i.e., queues whose last I/O requests are
*all* random.  With this error, any seeky queue was considered totally
seeky.  This the broke (only) selectivity.

> Anyway, applied.

> 


Thanks,
Paolo

> -- 

> Jens Axboe

>
diff mbox series

Patch

diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index f8d430f88d25..f9269ae6da9c 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -240,7 +240,7 @@  static struct kmem_cache *bfq_pool;
  * containing only random (seeky) I/O are prevented from being tagged
  * as soft real-time.
  */
-#define BFQQ_TOTALLY_SEEKY(bfqq)	(bfqq->seek_history & -1)
+#define BFQQ_TOTALLY_SEEKY(bfqq)	(bfqq->seek_history == -1)
 
 /* Min number of samples required to perform peak-rate update */
 #define BFQ_RATE_MIN_SAMPLES	32