Re: [PATCH 4/6] blk-mq: use EWMA to estimate congestion threshold

Ming Lei
2017-07-12T03:20:37Z

On Tue, Jul 11, 2017 at 12:39:35PM -0600, Jens Axboe wrote:
> 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.

OK, will do it in V2.

--
Ming