1. 17 4月, 2008 2 次提交
  2. 07 2月, 2008 2 次提交
  3. 29 1月, 2008 6 次提交
  4. 14 11月, 2007 1 次提交
    • L
      Revert "ext2/ext3/ext4: add block bitmap validation" · 0b832a4b
      Linus Torvalds 提交于
      This reverts commit 7c9e69fa, fixing up
      conflicts in fs/ext4/balloc.c manually.
      
      The cost of doing the bitmap validation on each lookup - even when the
      bitmap is cached - is absolutely prohibitive.  We could, and probably
      should, do it only when adding the bitmap to the buffer cache.  However,
      right now we are better off just reverting it.
      
      Peter Zijlstra measured the cost of this extra validation as a 85%
      decrease in cached iozone, and while I had a patch that took it down to
      just 17% by not being _quite_ so stupid in the validation, it was still
      a big slowdown that could have been avoided by just doing it right.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Andreas Dilger <adilger@clusterfs.com>
      Cc: Mingming Cao <cmm@us.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0b832a4b
  5. 18 10月, 2007 2 次提交
    • A
      ext4: Convert bg_inode_bitmap and bg_inode_table · 5272f837
      Aneesh Kumar K.V 提交于
      Convert bg_inode_bitmap and bg_inode_table to bg_inode_bitmap_lo
      and bg_inode_table_lo.  This helps in finding BUGs due to
      direct partial access of these split 64 bit values
      
      Also fix one direct partial access
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      5272f837
    • A
      Ext4: Uninitialized Block Groups · 717d50e4
      Andreas Dilger 提交于
      In pass1 of e2fsck, every inode table in the fileystem is scanned and checked,
      regardless of whether it is in use.  This is this the most time consuming part
      of the filesystem check.  The unintialized block group feature can greatly
      reduce e2fsck time by eliminating checking of uninitialized inodes.
      
      With this feature, there is a a high water mark of used inodes for each block
      group.  Block and inode bitmaps can be uninitialized on disk via a flag in the
      group descriptor to avoid reading or scanning them at e2fsck time.  A checksum
      of each group descriptor is used to ensure that corruption in the group
      descriptor's bit flags does not cause incorrect operation.
      
      The feature is enabled through a mkfs option
      
      	mke2fs /dev/ -O uninit_groups
      
      A patch adding support for uninitialized block groups to e2fsprogs tools has
      been posted to the linux-ext4 mailing list.
      
      The patches have been stress tested with fsstress and fsx.  In performance
      tests testing e2fsck time, we have seen that e2fsck time on ext3 grows
      linearly with the total number of inodes in the filesytem.  In ext4 with the
      uninitialized block groups feature, the e2fsck time is constant, based
      solely on the number of used inodes rather than the total inode count.
      Since typical ext4 filesystems only use 1-10% of their inodes, this feature can
      greatly reduce e2fsck time for users.  With performance improvement of 2-20
      times, depending on how full the filesystem is.
      
      The attached graph shows the major improvements in e2fsck times in filesystems
      with a large total inode count, but few inodes in use.
      
      In each group descriptor if we have
      
      EXT4_BG_INODE_UNINIT set in bg_flags:
              Inode table is not initialized/used in this group. So we can skip
              the consistency check during fsck.
      EXT4_BG_BLOCK_UNINIT set in bg_flags:
              No block in the group is used. So we can skip the block bitmap
              verification for this group.
      
      We also add two new fields to group descriptor as a part of
      uninitialized group patch.
      
              __le16  bg_itable_unused;       /* Unused inodes count */
              __le16  bg_checksum;            /* crc16(sb_uuid+group+desc) */
      
      bg_itable_unused:
      
      If we have EXT4_BG_INODE_UNINIT not set in bg_flags
      then bg_itable_unused will give the offset within
      the inode table till the inodes are used. This can be
      used by fsck to skip list of inodes that are marked unused.
      
      bg_checksum:
      Now that we depend on bg_flags and bg_itable_unused to determine
      the block and inode usage, we need to make sure group descriptor
      is not corrupt. We add checksum to group descriptor to
      detect corruption. If the descriptor is found to be corrupt, we
      mark all the blocks and inodes in the group used.
      Signed-off-by: NAvantika Mathur <mathur@us.ibm.com>
      Signed-off-by: NAndreas Dilger <adilger@clusterfs.com>
      Signed-off-by: NMingming Cao <cmm@us.ibm.com>
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      717d50e4
  6. 17 10月, 2007 3 次提交
  7. 18 7月, 2007 1 次提交
  8. 17 7月, 2007 1 次提交
  9. 01 6月, 2007 1 次提交
  10. 21 2月, 2007 1 次提交
  11. 08 12月, 2006 7 次提交
  12. 12 10月, 2006 10 次提交
  13. 27 9月, 2006 3 次提交