Re: [PATCH] blk-mq: I/O and timer unplugs are inverted in blktrace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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: stable@xxxxxxxxxxxxxxx
> Fixes: bd166ef183c2 ("blk-mq-sched: add framework for MQ capable IO schedulers")

Reviewed-by: Omar Sandoval <osandov@xxxxxx>

> Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
> ---
>  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
> 



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux