All of lore.kernel.org
 help / color / mirror / Atom feed
* FAILED: patch "[PATCH] dm: revert partial fix for redundant bio-based IO accounting" failed to apply to 5.4-stable tree
@ 2022-01-29 13:31 gregkh
  2022-02-08 22:00 ` Mike Snitzer
  0 siblings, 1 reply; 2+ messages in thread
From: gregkh @ 2022-01-29 13:31 UTC (permalink / raw)
  To: snitzer, axboe; +Cc: stable


The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From f524d9c95fab54783d0038f7a3e8c014d5b56857 Mon Sep 17 00:00:00 2001
From: Mike Snitzer <snitzer@redhat.com>
Date: Fri, 28 Jan 2022 10:58:40 -0500
Subject: [PATCH] dm: revert partial fix for redundant bio-based IO accounting

Reverts a1e1cb72d9649 ("dm: fix redundant IO accounting for bios that
need splitting") because it was too narrow in scope (only addressed
redundant 'sectors[]' accounting and not ios, nsecs[], etc).

Cc: stable@vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Link: https://lore.kernel.org/r/20220128155841.39644-3-snitzer@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index c0ae8087c602..9849114b3c08 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1442,9 +1442,6 @@ static void init_clone_info(struct clone_info *ci, struct mapped_device *md,
 	ci->sector = bio->bi_iter.bi_sector;
 }
 
-#define __dm_part_stat_sub(part, field, subnd)	\
-	(part_stat_get(part, field) -= (subnd))
-
 /*
  * Entry point to split a bio into clones and submit them to the targets.
  */
@@ -1480,18 +1477,6 @@ static void __split_and_process_bio(struct mapped_device *md,
 						  GFP_NOIO, &md->queue->bio_split);
 			ci.io->orig_bio = b;
 
-			/*
-			 * Adjust IO stats for each split, otherwise upon queue
-			 * reentry there will be redundant IO accounting.
-			 * NOTE: this is a stop-gap fix, a proper fix involves
-			 * significant refactoring of DM core's bio splitting
-			 * (by eliminating DM's splitting and just using bio_split)
-			 */
-			part_stat_lock();
-			__dm_part_stat_sub(dm_disk(md)->part0,
-					   sectors[op_stat_group(bio_op(bio))], ci.sector_count);
-			part_stat_unlock();
-
 			bio_chain(b, bio);
 			trace_block_split(b, bio->bi_iter.bi_sector);
 			submit_bio_noacct(bio);


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: FAILED: patch "[PATCH] dm: revert partial fix for redundant bio-based IO accounting" failed to apply to 5.4-stable tree
  2022-01-29 13:31 FAILED: patch "[PATCH] dm: revert partial fix for redundant bio-based IO accounting" failed to apply to 5.4-stable tree gregkh
@ 2022-02-08 22:00 ` Mike Snitzer
  0 siblings, 0 replies; 2+ messages in thread
From: Mike Snitzer @ 2022-02-08 22:00 UTC (permalink / raw)
  To: gregkh; +Cc: axboe, stable

Hey Greg,

Turns out the fixes I marked for stable@ aren't actually fixing
anything (after applying the changes: code is cleaner but no
meaningful difference in IO stats).

That is because DM was already patching up the 'sectors' portion of
the stats after a split.  The other fields I documented in the
following header aren't tied to payload (see __part_start_io_acct).

So no _real_ need to backport to 5.4 or 5.10.  Sorry for the noise.

Mike

On Sat, Jan 29 2022 at  8:31P -0500,
gregkh@linuxfoundation.org <gregkh@linuxfoundation.org> wrote:

> 
> The patch below does not apply to the 5.4-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@vger.kernel.org>.
> 
> thanks,
> 
> greg k-h
> 
> ------------------ original commit in Linus's tree ------------------
> 
> From f524d9c95fab54783d0038f7a3e8c014d5b56857 Mon Sep 17 00:00:00 2001
> From: Mike Snitzer <snitzer@redhat.com>
> Date: Fri, 28 Jan 2022 10:58:40 -0500
> Subject: [PATCH] dm: revert partial fix for redundant bio-based IO accounting
> 
> Reverts a1e1cb72d9649 ("dm: fix redundant IO accounting for bios that
> need splitting") because it was too narrow in scope (only addressed
> redundant 'sectors[]' accounting and not ios, nsecs[], etc).
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
> Link: https://lore.kernel.org/r/20220128155841.39644-3-snitzer@redhat.com
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> 
> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index c0ae8087c602..9849114b3c08 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -1442,9 +1442,6 @@ static void init_clone_info(struct clone_info *ci, struct mapped_device *md,
>  	ci->sector = bio->bi_iter.bi_sector;
>  }
>  
> -#define __dm_part_stat_sub(part, field, subnd)	\
> -	(part_stat_get(part, field) -= (subnd))
> -
>  /*
>   * Entry point to split a bio into clones and submit them to the targets.
>   */
> @@ -1480,18 +1477,6 @@ static void __split_and_process_bio(struct mapped_device *md,
>  						  GFP_NOIO, &md->queue->bio_split);
>  			ci.io->orig_bio = b;
>  
> -			/*
> -			 * Adjust IO stats for each split, otherwise upon queue
> -			 * reentry there will be redundant IO accounting.
> -			 * NOTE: this is a stop-gap fix, a proper fix involves
> -			 * significant refactoring of DM core's bio splitting
> -			 * (by eliminating DM's splitting and just using bio_split)
> -			 */
> -			part_stat_lock();
> -			__dm_part_stat_sub(dm_disk(md)->part0,
> -					   sectors[op_stat_group(bio_op(bio))], ci.sector_count);
> -			part_stat_unlock();
> -
>  			bio_chain(b, bio);
>  			trace_block_split(b, bio->bi_iter.bi_sector);
>  			submit_bio_noacct(bio);
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-02-08 22:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-29 13:31 FAILED: patch "[PATCH] dm: revert partial fix for redundant bio-based IO accounting" failed to apply to 5.4-stable tree gregkh
2022-02-08 22:00 ` Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.