On Wed, Sep 26, 2018 at 02:35:50PM +0200, Ilya Dryomov wrote:
> trace_block_unplug() takes true for explicit unplugs and false for
> implicit unplugs.  schedule() unplugs are implicit and should be
> reported as timer unplugs.  While correct in the legacy code, this has
> been inverted in blk-mq since 4.11.
> 
> Cc: [email protected]
> Fixes: bd166ef183c2 ("blk-mq-sched: add framework for MQ capable IO 
> schedulers")

Reviewed-by: Omar Sandoval <[email protected]>

> Signed-off-by: Ilya Dryomov <[email protected]>
> ---
>  block/blk-mq.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/block/blk-mq.c b/block/blk-mq.c
> index 85a1c1a59c72..e3c39ea8e17b 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -1628,7 +1628,7 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool 
> from_schedule)
>               BUG_ON(!rq->q);
>               if (rq->mq_ctx != this_ctx) {
>                       if (this_ctx) {
> -                             trace_block_unplug(this_q, depth, 
> from_schedule);
> +                             trace_block_unplug(this_q, depth, 
> !from_schedule);
>                               blk_mq_sched_insert_requests(this_q, this_ctx,
>                                                               &ctx_list,
>                                                               from_schedule);
> @@ -1648,7 +1648,7 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool 
> from_schedule)
>        * on 'ctx_list'. Do those.
>        */
>       if (this_ctx) {
> -             trace_block_unplug(this_q, depth, from_schedule);
> +             trace_block_unplug(this_q, depth, !from_schedule);
>               blk_mq_sched_insert_requests(this_q, this_ctx, &ctx_list,
>                                               from_schedule);
>       }
> -- 
> 2.14.4
> 

Reply via email to