Re: [PATCH 4/6] blk-mq: use EWMA to estimate congestion threshold
From: Jens Axboe <axboe@fb.com>
Date: 2017-07-11 18:40:26
From: Jens Axboe <axboe@fb.com>
Date: 2017-07-11 18:40:26
On 07/11/2017 12:21 PM, Ming Lei wrote:
diff --git a/block/blk-mq.h b/block/blk-mq.h index 60b01c0309bc..c4516d2a2d2c 100644 --- a/block/blk-mq.h +++ b/block/blk-mq.h@@ -133,4 +133,13 @@ static inline bool blk_mq_hw_queue_mapped(struct blk_mq_hw_ctx *hctx) return hctx->nr_ctx && hctx->tags; } +/* borrowed from bcache */ +#define ewma_add(ewma, val, weight, factor) \ +({ \ + (ewma) *= (weight) - 1; \ + (ewma) += (val) << factor; \ + (ewma) /= (weight); \ + (ewma) >> factor; \ +})
Just put that in blk_mq_update_req_dispatch_busy(), or at least make it a static function in blk-mq.c above that function. You don't use factor at all. -- Jens Axboe