From: Mike Snitzer <snitzer@kernel.org>
To: dm-devel@redhat.com
Cc: axboe@kernel.dk, ebiggers@kernel.org, keescook@chromium.org,
heinzm@redhat.com, Mike Snitzer <snitzer@kernel.org>,
nhuck@google.com, linux-block@vger.kernel.org, ejt@redhat.com,
mpatocka@redhat.com, luomeng12@huawei.com
Subject: [dm-devel] [dm-6.4 PATCH v3 00/20] dm bufio, thin: improve concurrent IO performance
Date: Mon, 27 Mar 2023 16:11:23 -0400 [thread overview]
Message-ID: <20230327201143.51026-1-snitzer@kernel.org> (raw)
Hi,
Please review and/or test. Thanks.
Available via git here:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-6.4-dev3
Diffstat from v2 to v3:
git diff dm/dm-6.4-dev2 dm/dm-6.4-dev3 | diffstat
dm-bio-prison-v1.c | 80 ++++++++++--------
dm-bio-prison-v1.h | 5 +
dm-bufio.c | 226 ++++++++++++++++++++++++++++-------------------------
dm-thin.c | 29 ++++--
dm.h | 10 ++
5 files changed, 197 insertions(+), 153 deletions(-)
Changes from v2 to v3:
- fixed inconsistent braces in conditionals and other whitespace nits
in response to the quick review Jens offered on v2
- also fixed struct layout Jens noted, so locks and data they protect
are on the same cacheline
- split v2's really large dm-bufio-improve-concurrent-IO-performance
patch to be 4 patches (patches 5-8)
- removed the (ab)use of BUG_ON in most of dm-bufio.c (in preliminary
patches 2-4 and also within patches 5-7)
- removed the bio-prison-v1.c's BUG_ON (introduced in patch 14) in
favor of higher level dm-thin.c code checking when it builds the
prison key (allowing for graceful error handling), in patch 15.
- introduced dm_num_sharded_locks and use it to remove the "NR_LOCKS"
magic value (64) used to split locks in both dm-bio-prison-v1 and
dm-bufio (patches 16-20).
Changes from v1 to v2:
- fixed dm-thin to properly split discards to respect
dm-bio-prison-v1's BIO_PRISON_MAX_RANGE limit
Joe Thornber (7):
dm bufio: remove unused dm_bufio_release_move interface
dm bufio: add LRU abstraction
dm bufio: add dm_buffer_cache abstraction
dm bufio: improve concurrent IO performance
dm bufio: add lock_history optimization for cache iterators
dm thin: speed up cell_defer_no_holder()
dm bio prison v1: improve concurrent IO performance
Mike Snitzer (11):
dm bufio: use WARN_ON in dm_bufio_client_destroy and dm_bufio_exit
dm bufio: never crash if dm_bufio_in_request()
dm bufio: don't bug for clear developer oversight
dm bufio: move dm_bufio_client members to avoid spanning cachelines
dm: split discards further if target sets max_discard_granularity
dm bio prison v1: add dm_cell_key_has_valid_range
dm: add dm_num_sharded_locks()
dm bufio: prepare to intelligently size dm_buffer_cache's buffer_trees
dm bufio: intelligently size dm_buffer_cache's buffer_trees
dm bio prison v1: prepare to intelligently size dm_bio_prison's
prison_regions
dm bio prison v1: intelligently size dm_bio_prison's prison_regions
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 | 93 +-
drivers/md/dm-bio-prison-v1.h | 15 +
drivers/md/dm-bufio.c | 1988 +++++++++++++++++++++++----------
drivers/md/dm-thin.c | 125 ++-
drivers/md/dm.c | 25 +-
drivers/md/dm.h | 10 +
include/linux/device-mapper.h | 6 +
include/linux/dm-bufio.h | 6 -
include/uapi/linux/dm-ioctl.h | 4 +-
9 files changed, 1558 insertions(+), 714 deletions(-)
--
2.40.0
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@kernel.org>
To: dm-devel@redhat.com
Cc: linux-block@vger.kernel.org, axboe@kernel.dk, 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 v3 00/20] dm bufio, thin: improve concurrent IO performance
Date: Mon, 27 Mar 2023 16:11:23 -0400 [thread overview]
Message-ID: <20230327201143.51026-1-snitzer@kernel.org> (raw)
Hi,
Please review and/or test. Thanks.
Available via git here:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-6.4-dev3
Diffstat from v2 to v3:
git diff dm/dm-6.4-dev2 dm/dm-6.4-dev3 | diffstat
dm-bio-prison-v1.c | 80 ++++++++++--------
dm-bio-prison-v1.h | 5 +
dm-bufio.c | 226 ++++++++++++++++++++++++++++-------------------------
dm-thin.c | 29 ++++--
dm.h | 10 ++
5 files changed, 197 insertions(+), 153 deletions(-)
Changes from v2 to v3:
- fixed inconsistent braces in conditionals and other whitespace nits
in response to the quick review Jens offered on v2
- also fixed struct layout Jens noted, so locks and data they protect
are on the same cacheline
- split v2's really large dm-bufio-improve-concurrent-IO-performance
patch to be 4 patches (patches 5-8)
- removed the (ab)use of BUG_ON in most of dm-bufio.c (in preliminary
patches 2-4 and also within patches 5-7)
- removed the bio-prison-v1.c's BUG_ON (introduced in patch 14) in
favor of higher level dm-thin.c code checking when it builds the
prison key (allowing for graceful error handling), in patch 15.
- introduced dm_num_sharded_locks and use it to remove the "NR_LOCKS"
magic value (64) used to split locks in both dm-bio-prison-v1 and
dm-bufio (patches 16-20).
Changes from v1 to v2:
- fixed dm-thin to properly split discards to respect
dm-bio-prison-v1's BIO_PRISON_MAX_RANGE limit
Joe Thornber (7):
dm bufio: remove unused dm_bufio_release_move interface
dm bufio: add LRU abstraction
dm bufio: add dm_buffer_cache abstraction
dm bufio: improve concurrent IO performance
dm bufio: add lock_history optimization for cache iterators
dm thin: speed up cell_defer_no_holder()
dm bio prison v1: improve concurrent IO performance
Mike Snitzer (11):
dm bufio: use WARN_ON in dm_bufio_client_destroy and dm_bufio_exit
dm bufio: never crash if dm_bufio_in_request()
dm bufio: don't bug for clear developer oversight
dm bufio: move dm_bufio_client members to avoid spanning cachelines
dm: split discards further if target sets max_discard_granularity
dm bio prison v1: add dm_cell_key_has_valid_range
dm: add dm_num_sharded_locks()
dm bufio: prepare to intelligently size dm_buffer_cache's buffer_trees
dm bufio: intelligently size dm_buffer_cache's buffer_trees
dm bio prison v1: prepare to intelligently size dm_bio_prison's
prison_regions
dm bio prison v1: intelligently size dm_bio_prison's prison_regions
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 | 93 +-
drivers/md/dm-bio-prison-v1.h | 15 +
drivers/md/dm-bufio.c | 1988 +++++++++++++++++++++++----------
drivers/md/dm-thin.c | 125 ++-
drivers/md/dm.c | 25 +-
drivers/md/dm.h | 10 +
include/linux/device-mapper.h | 6 +
include/linux/dm-bufio.h | 6 -
include/uapi/linux/dm-ioctl.h | 4 +-
9 files changed, 1558 insertions(+), 714 deletions(-)
--
2.40.0
next reply other threads:[~2023-03-27 20:13 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-27 20:11 Mike Snitzer [this message]
2023-03-27 20:11 ` [dm-6.4 PATCH v3 00/20] dm bufio, thin: improve concurrent IO performance Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 01/20] dm bufio: remove unused dm_bufio_release_move interface Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 02/20] dm bufio: use WARN_ON in dm_bufio_client_destroy and dm_bufio_exit Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 03/20] dm bufio: never crash if dm_bufio_in_request() Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 04/20] dm bufio: don't bug for clear developer oversight Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 05/20] dm bufio: add LRU abstraction Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 06/20] dm bufio: add dm_buffer_cache abstraction Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 07/20] dm bufio: improve concurrent IO performance Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 08/20] dm bufio: add lock_history optimization for cache iterators Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 09/20] dm bufio: move dm_bufio_client members to avoid spanning cachelines Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 10/20] dm bufio: use waitqueue_active in __free_buffer_wake Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 11/20] dm bufio: use multi-page bio vector Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 12/20] dm thin: speed up cell_defer_no_holder() Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 13/20] dm: split discards further if target sets max_discard_granularity Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 14/20] dm bio prison v1: improve concurrent IO performance Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 15/20] dm bio prison v1: add dm_cell_key_has_valid_range Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 16/20] dm: add dm_num_sharded_locks() Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 17/20] dm bufio: prepare to intelligently size dm_buffer_cache's buffer_trees Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 18/20] dm bufio: " Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 19/20] dm bio prison v1: prepare to intelligently size dm_bio_prison's prison_regions Mike Snitzer
2023-03-27 20:11 ` Mike Snitzer
2023-03-27 20:11 ` [dm-devel] [dm-6.4 PATCH v3 20/20] dm bio prison v1: " Mike Snitzer
2023-03-27 20:11 ` 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=20230327201143.51026-1-snitzer@kernel.org \
--to=snitzer@kernel.org \
--cc=axboe@kernel.dk \
--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 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.