mbox series

[v4,0/3] block/dm: fix bio-based DM IO accounting

Message ID 20220128155841.39644-1-snitzer@redhat.com (mailing list archive)
Headers show
Series block/dm: fix bio-based DM IO accounting | expand

Message

Mike Snitzer Jan. 28, 2022, 3:58 p.m. UTC
[this v4 is final iteration, should be "ready"...]

Hi Jens,

Just over 3 years ago, with commit a1e1cb72d9649 ("dm: fix redundant
IO accounting for bios that need splitting") I focused too narrowly on
fixing the reported potential for redundant accounting for IO totals.
Which, at least mentally for me, papered over how inaccurate all other
bio-based DM's IO accounting is for bios that get split.

This set fixes things up properly by allowing DM to start IO
accounting _after_ IO is submitted and a split may have occurred. The
proper start_time is still established (prior to submission), it is
passed in to a new bio_start_io_acct_time().  This eliminates the need
for any DM hack to rewind block core's accounting that was started
before any potential bio split.

All said: If you'd provide your Acked-by(s) I'm happy to send this set
to Linus for v5.17-rc (and shepherd the changes into stable@ kernels).

Or you're welcome to pickup this set to send along (I'd obviously
still do any stable@ backports). NOTE: the 3rd patch references the
linux-dm.git commit id for the 1st patch.. so that'll require tweaking
no matter who sends the changes to Linus.

Please advise, thanks.
Mike

v4: added Christoph's Reviewed-bys. Removed READ_ONCE from patch 3
v3: fix patch 3 to call bio_start_io_acct_time
v2: made block changes suggested by Christoph

Mike Snitzer (3):
  block: add bio_start_io_acct_time() to control start_time
  dm: revert partial fix for redundant bio-based IO accounting
  dm: properly fix redundant bio-based IO accounting

 block/blk-core.c       | 25 +++++++++++++++++++------
 drivers/md/dm.c        | 20 +++-----------------
 include/linux/blkdev.h |  1 +
 3 files changed, 23 insertions(+), 23 deletions(-)

Comments

Jens Axboe Jan. 28, 2022, 5:19 p.m. UTC | #1
On Fri, 28 Jan 2022 10:58:38 -0500, Mike Snitzer wrote:
> [this v4 is final iteration, should be "ready"...]
> 
> Hi Jens,
> 
> Just over 3 years ago, with commit a1e1cb72d9649 ("dm: fix redundant
> IO accounting for bios that need splitting") I focused too narrowly on
> fixing the reported potential for redundant accounting for IO totals.
> Which, at least mentally for me, papered over how inaccurate all other
> bio-based DM's IO accounting is for bios that get split.
> 
> [...]

Applied, thanks!

[1/3] block: add bio_start_io_acct_time() to control start_time
      commit: 5a6cd1d29f2104bd0306a0f839c8b328395b784f
[2/3] dm: revert partial fix for redundant bio-based IO accounting
      commit: b6e31a39c63e0214937c8c586faa10122913e935
[3/3] dm: properly fix redundant bio-based IO accounting
      commit: 3c4ae3478082388ae9680a932d6bfd54c10fca0d

Best regards,