diff options
author | NeilBrown <neilb@suse.de> | 2009-11-17 13:15:34 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-11-17 13:15:34 +1100 |
commit | b8ab2a50aba72c7316d92d0fb414167844673136 (patch) | |
tree | c774854f3687f0f4a9d00e17001bf697639992ea /super0.c | |
parent | ff94fb86fd22842c06e8fad08c27a4e365d7834a (diff) |
Set default bitmap-chunksize for internal bitmaps to at least 64Meg
A small bitmap-chunksize hurts performance without helping
resync speed much - particularly on internal bitmaps.
So set the default to at least 64Meg.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'super0.c')
-rw-r--r-- | super0.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -970,9 +970,14 @@ static int add_internal_bitmap0(struct supertype *st, int *chunkp, min_chunk *= 2; bits = (bits+1)/2; } - if (chunk == UnSet) + if (chunk == UnSet) { + /* A chunk size less than a few Megabytes gives poor + * performance without increasing resync noticeably + */ chunk = min_chunk; - else if (chunk < min_chunk) + if (chunk < 64*1024*1024) + chunk = 64*1024*1024; + } else if (chunk < min_chunk) return 0; /* chunk size too small */ sb->state |= (1<<MD_SB_BITMAP_PRESENT); |