linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@kernel.org>
To: dm-devel@redhat.com
Cc: linux-block@vger.kernel.org, ejt@redhat.com, mpatocka@redhat.com,
	heinzm@redhat.com, nhuck@google.com, ebiggers@kernel.org,
	keescook@chromium.org, luomeng12@huawei.com,
	Mike Snitzer <snitzer@kernel.org>
Subject: [dm-6.4 PATCH v2 0/9] dm bufio, thin: improve concurrent IO performance
Date: Fri, 24 Mar 2023 13:56:47 -0400	[thread overview]
Message-ID: <20230324175656.85082-1-snitzer@kernel.org> (raw)

Hi,

This patchset has been staged in linux-next for the 6.4 merge
window. The relevant linux-dm.git branch is here:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-6.4

The initial patchset I posted earlier in the week for this line of
work didn't properly split DM thin's discards. To be clear: both Joe
and I missed this, and the issue impacted the patchset I posted _and_
code Joe had developed and tested to that point.

device-mapper-test-suite's "discard_with_fstrim_passdown_true_ext4"
test reliably reproduced the incorrect splitting.  The issue was the
DM thin target wasn't respecting the new restrictions imposed by
dm bio-prison-v1 (which the DM thin target uses). Joe fixed this and
the code reflects that in patch 9.

All said, and as detailed in the "Testing" section of the header for
patch 3: these changes have _now_ been extensively tested in terms of
dm-thin (and dm-cache as much as device-mapper-test-suite
provides). The cryptsetup testsuite also passes (DM integrity uses
dm-bufio).

PLEASE HELP with further testing of other more exotic DM bufio
consumers and elaborate usecases (be it via Android, Chrome OS, etc).

Please use whatever tests you have to put pressure on bufio.
In particular: focused testing of bufio's shrinker, verify
DM_BUFIO_CLIENT_NO_SLEEP (via dm-verity's tasklets), etc.

There is still time to add fixes for 6.4 should any issues turn
up.

All review is welcome (I'll rebase to include Reviewed-by or Acked-by
tags). Also, positive reports in the form of Tested-by replies are
welcome!

Thanks,
Mike

Joe Thornber (4):
  dm bufio: remove unused dm_bufio_release_move interface
  dm bufio: improve concurrent IO performance
  dm thin: speed up cell_defer_no_holder()
  dm bio prison v1: improve concurrent IO performance

Mike Snitzer (3):
  dm bufio: move dm_buffer struct
  dm bufio: move dm_bufio_client members to avoid spanning cachelines
  dm: split discards further if target sets max_discard_granularity

Mikulas Patocka (2):
  dm bufio: use waitqueue_active in __free_buffer_wake
  dm bufio: use multi-page bio vector

 drivers/md/dm-bio-prison-v1.c |   87 +-
 drivers/md/dm-bio-prison-v1.h |   10 +
 drivers/md/dm-bufio.c         | 1970 ++++++++++++++++++++++-----------
 drivers/md/dm-thin.c          |  110 +-
 drivers/md/dm.c               |   25 +-
 include/linux/device-mapper.h |    6 +
 include/linux/dm-bufio.h      |    6 -
 include/uapi/linux/dm-ioctl.h |    4 +-
 8 files changed, 1509 insertions(+), 709 deletions(-)

-- 
2.40.0


             reply	other threads:[~2023-03-24 17:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-24 17:56 Mike Snitzer [this message]
2023-03-24 17:56 ` [dm-6.4 PATCH v2 1/9] dm bufio: remove unused dm_bufio_release_move interface Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 2/9] dm bufio: move dm_buffer struct Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 3/9] dm bufio: improve concurrent IO performance Mike Snitzer
2023-03-24 19:34   ` Jens Axboe
2023-03-24 22:53     ` Mike Snitzer
2023-03-24 23:11       ` Jens Axboe
2023-03-25  4:21         ` Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 4/9] dm bufio: move dm_bufio_client members to avoid spanning cachelines Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 5/9] dm bufio: use waitqueue_active in __free_buffer_wake Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 6/9] dm bufio: use multi-page bio vector Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 7/9] dm thin: speed up cell_defer_no_holder() Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 8/9] dm: split discards further if target sets max_discard_granularity Mike Snitzer
2023-03-24 17:56 ` [dm-6.4 PATCH v2 9/9] dm bio prison v1: improve concurrent IO performance Mike Snitzer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230324175656.85082-1-snitzer@kernel.org \
    --to=snitzer@kernel.org \
    --cc=dm-devel@redhat.com \
    --cc=ebiggers@kernel.org \
    --cc=ejt@redhat.com \
    --cc=heinzm@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-block@vger.kernel.org \
    --cc=luomeng12@huawei.com \
    --cc=mpatocka@redhat.com \
    --cc=nhuck@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).