On Sun, Nov 20, 2011 at 2:13 AM, Andreas Dilger <aedilger@xxxxxxxxx> wrote: > On 2011-11-19, at 2:57, Yongqiang Yang <xiaoqiangnk@xxxxxxxxx> wrote: >> This patch series adds new resize implementation to ext4. >> >> -- What's new resize implementation? >> It is a new online resize interface for ext4. It can be used via >> ioctl with EXT4_IOC_RESIZE_FS and a 64 bit integer indicating size >> of the resized fs in block. >> >> -- Difference between current resize and new resize. >> New resize lets kernel do all work, like allocating bitmaps and >> inode tables and can support flex_bg and BLOCK_UNINIT features. >> Besides these, new resize is much faster than current resize. >> >> Below are benchmarks I made on my personal computer, fses with >> flex_bg size = 16 were resized to 230GB evry time. The first >> row shows the size of a fs from which the fs was resized to 230GB. >> The datas were collected by 'time resize2fs'. >> >> new resize >> 20GB 50GB 100GB >> real 0m3.558s 0m2.891s 0m0.394s >> user 0m0.004s 0m0.000s 0m0.394s >> sys 0m0.048s 0m0.048s 0m0.028s >> >> current resize >> 20GB 50GB 100GB >> real 5m2.770s 4m43.757s 3m14.840s >> user 0m0.040s 0m0.032s 0m0.024s >> sys 0m0.464s 0m0.432s 0m0.324s > > These stats must be backward, because resizing 20GB takes more time than resizing 100GB. Every time, the filesystem was resized from 20/50/100GB to 230GB, so resizing 20GB should takes more time than resizing 100GB. I am not sure what you meant. Yongqiang. > >> According to data above, new resize is faster than current resize in both >> user and sys time. New resize performs well in sys time, because it >> supports BLOCK_UNINIT and adds multi-groups each time. >> >> -- About supporting new features. >> YES! New resize can support new feature like bigalloc and exclude bitmap >> easily. Because it lets kernel do all work. >> >> V3->V4: >> rename __ext4_group_extend to ext4_group_extend_no_check. >> >> V2->V3: >> initialize block bitmap of last group. >> remove code initalizing inode bitmap and inode tables. >> >> Yongqiang. >> >> git diff --stat >> >> Documentation/filesystems/ext4.txt | 7 + >> fs/ext4/ext4.h | 10 + >> fs/ext4/ioctl.c | 39 ++ >> fs/ext4/resize.c | 1167 +++++++++++++++++++++++++++--------- >> 4 files changed, 942 insertions(+), 281 deletions(-) >> >> > -- Best Wishes Yongqiang Yang -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html