diff options
author | Joe Thornber <ejt@redhat.com> | 2023-03-02 10:35:37 +0100 |
---|---|---|
committer | Mike Snitzer <snitzer@kernel.org> | 2023-03-30 21:57:51 +0200 |
commit | e2dd8aca2d76f937f1f08d03041684f3532e9df4 (patch) | |
tree | 85b1a068359746c3bd77338dd039c7afe84c197a /drivers/md/dm.h | |
parent | dm: split discards further if target sets max_discard_granularity (diff) | |
download | linux-e2dd8aca2d76f937f1f08d03041684f3532e9df4.tar.xz linux-e2dd8aca2d76f937f1f08d03041684f3532e9df4.zip |
dm bio prison v1: improve concurrent IO performance
Split the bio prison into multiple regions, with a separate rbtree and
associated lock for each region.
To get fast bio prison locking and not damage the performance of
discards too much the bio-prison now stipulates that discards should
not cross a BIO_PRISON_MAX_RANGE boundary.
Because the range of a key (block_end - block_begin) must not exceed
BIO_PRISON_MAX_RANGE: break_up_discard_bio() now ensures the data
range reflected in PHYSICAL key doesn't exceed BIO_PRISON_MAX_RANGE.
And splitting the thin target's discards (handled with VIRTUAL key) is
achieved by updating dm-thin.c to set limits->max_discard_sectors in
terms of BIO_PRISON_MAX_RANGE _and_ setting the thin and thin-pool
targets' max_discard_granularity to true.
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Diffstat (limited to 'drivers/md/dm.h')
0 files changed, 0 insertions, 0 deletions