summaryrefslogtreecommitdiffstats
path: root/drivers/md/dm.h
diff options
context:
space:
mode:
authorJoe Thornber <ejt@redhat.com>2023-03-02 10:35:37 +0100
committerMike Snitzer <snitzer@kernel.org>2023-03-30 21:57:51 +0200
commite2dd8aca2d76f937f1f08d03041684f3532e9df4 (patch)
tree85b1a068359746c3bd77338dd039c7afe84c197a /drivers/md/dm.h
parentdm: split discards further if target sets max_discard_granularity (diff)
downloadlinux-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