* 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.