diff options
| author | Joe Thornber <[email protected]> | 2014-10-06 20:30:06 +0000 |
|---|---|---|
| committer | Mike Snitzer <[email protected]> | 2014-11-10 20:25:26 +0000 |
| commit | a195db2d29a47c2c3a61386009bd400df18c86cf (patch) | |
| tree | 17f9c41a52fa28c6a03840a0df24a3781c280217 /drivers/md/dm-cache-target.c | |
| parent | dm bufio: evict buffers that are past the max age but retain some buffers (diff) | |
| download | kernel-a195db2d29a47c2c3a61386009bd400df18c86cf.tar.gz kernel-a195db2d29a47c2c3a61386009bd400df18c86cf.zip | |
dm bio prison: switch to using a red black tree
Previously it was using a fixed sized hash table. There are times
when very many concurrent cells are held (such as when processing a very
large discard). When this happens the hash table performance becomes
very poor.
Signed-off-by: Joe Thornber <[email protected]>
Signed-off-by: Mike Snitzer <[email protected]>
Diffstat (limited to 'drivers/md/dm-cache-target.c')
| -rw-r--r-- | drivers/md/dm-cache-target.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index 7130505c2425..69de8b43ca12 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c @@ -95,7 +95,6 @@ static void dm_unhook_bio(struct dm_hook_info *h, struct bio *bio) /*----------------------------------------------------------------*/ -#define PRISON_CELLS 1024 #define MIGRATION_POOL_SIZE 128 #define COMMIT_PERIOD HZ #define MIGRATION_COUNT_WINDOW 10 @@ -2327,7 +2326,7 @@ static int cache_create(struct cache_args *ca, struct cache **result) INIT_DELAYED_WORK(&cache->waker, do_waker); cache->last_commit_jiffies = jiffies; - cache->prison = dm_bio_prison_create(PRISON_CELLS); + cache->prison = dm_bio_prison_create(); if (!cache->prison) { *error = "could not create bio prison"; goto bad; |
