1. 10 2月, 2013 1 次提交
    • T
      ext4: use module parameters instead of debugfs for mballoc_debug · a0b30c12
      Theodore Ts'o 提交于
      There are multiple reasons to move away from debugfs.  First of all,
      we are only using it for a single parameter, and it is much more
      complicated to set up (some 30 lines of code compared to 3), and one
      more thing that might fail while loading the ext4 module.
      
      Secondly, as a module paramter it can be specified as a boot option if
      ext4 is built into the kernel, or as a parameter when the module is
      loaded, and it can also be manipulated dynamically under
      /sys/module/ext4/parameters/mballoc_debug.  So it is more flexible.
      
      Ultimately we want to move away from using mb_debug() towards
      tracepoints, but for now this is still a useful simplification of the
      code base.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      a0b30c12
  2. 17 8月, 2012 1 次提交
  3. 21 2月, 2012 2 次提交
  4. 01 11月, 2011 1 次提交
  5. 10 9月, 2011 3 次提交
    • T
      ext4: teach ext4_free_blocks() about bigalloc and clusters · 84130193
      Theodore Ts'o 提交于
      The ext4_free_blocks() function now has two new flags that indicate
      whether a partial cluster at the beginning or the end of the block
      extents should be freed or not.  That will be up the caller (i.e.,
      truncate), who can figure out whether partial clusters at the
      beginning or the end of a block range can be freed.
      
      We also have to update the ext4_mb_free_metadata() and
      release_blocks_on_commit() machinery to be cluster-based, since it is
      used by ext4_free_blocks().
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      84130193
    • T
      ext4: teach mballoc preallocation code about bigalloc clusters · 53accfa9
      Theodore Ts'o 提交于
      In most of mballoc.c, we do everything in units of clusters, since the
      block allocation bitmaps and buddy bitmaps are all denominated in
      clusters.  The one place where we do deal with absolute block numbers
      is in the code that handles the preallocation regions, since in the
      case of inode-based preallocation regions, the start of the
      preallocation region can't be relative to the beginning of the group.
      
      So this adds a bit of complexity, where pa_pstart and pa_lstart are
      block numbers, while pa_free, pa_len, and fe_len are denominated in
      units of clusters.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      53accfa9
    • T
      ext4: convert block group-relative offsets to use clusters · 3212a80a
      Theodore Ts'o 提交于
      Certain parts of the ext4 code base, primarily in mballoc.c, use a
      block group number and offset from the beginning of the block group.
      This offset is invariably used to index into the allocation bitmap, so
      change the offset to be denominated in units of clusters.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      3212a80a
  6. 24 7月, 2011 1 次提交
  7. 10 5月, 2011 1 次提交
  8. 25 2月, 2011 1 次提交
  9. 04 3月, 2010 2 次提交
  10. 14 12月, 2009 1 次提交
  11. 30 9月, 2009 2 次提交
    • T
      ext4: Use tracepoints for mb_history trace file · 296c355c
      Theodore Ts'o 提交于
      The /proc/fs/ext4/<dev>/mb_history was maintained manually, and had a
      number of problems: it required a largish amount of memory to be
      allocated for each ext4 filesystem, and the s_mb_history_lock
      introduced a CPU contention problem.  
      
      By ripping out the mb_history code and replacing it with ftrace
      tracepoints, and we get more functionality: timestamps, event
      filtering, the ability to correlate mballoc history with other ext4
      tracepoints, etc.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      296c355c
    • T
      ext4, jbd2: Drop unneeded printks at mount and unmount time · 90576c0b
      Theodore Ts'o 提交于
      There are a number of kernel printk's which are printed when an ext4
      filesystem is mounted and unmounted.  Disable them to economize space
      in the system logs.  In addition, disabling the mballoc stats by
      default saves a number of unneeded atomic operations for every block
      allocation or deallocation.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      90576c0b
  12. 26 8月, 2009 1 次提交
    • E
      ext4: use ext4_grpblk_t more extensively · a36b4498
      Eric Sandeen 提交于
      unsigned  short is potentially too small to track blocks within
      a group; today it is safe due to restrictions in e2fsprogs but
      we have _lo / _hi bits for group blocks with the intent to go
      up to 32 bits, so clean this up now.
      
      There are many more places where we use unsigned/int/unsigned int
      to contain a group block but this should at least fix all the
      short types.
      
      I added a few comments to the struct ext4_group_info definition
      as well.
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      a36b4498
  13. 19 9月, 2009 1 次提交
  14. 02 5月, 2009 1 次提交
  15. 17 6月, 2009 1 次提交
  16. 28 3月, 2009 1 次提交
  17. 07 2月, 2009 1 次提交
  18. 06 1月, 2009 2 次提交
  19. 26 11月, 2008 1 次提交
  20. 06 1月, 2009 1 次提交
  21. 17 10月, 2008 1 次提交
    • T
      ext4: Replace hackish ext4_mb_poll_new_transaction with commit callback · 3e624fc7
      Theodore Ts'o 提交于
      The multiblock allocator needs to be able to release blocks (and issue
      a blkdev discard request) when the transaction which freed those
      blocks is committed.  Previously this was done via a polling mechanism
      when blocks are allocated or freed.  A much better way of doing things
      is to create a jbd2 callback function and attaching the list of blocks
      to be freed directly to the transaction structure.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      3e624fc7
  22. 16 10月, 2008 2 次提交
  23. 23 9月, 2008 1 次提交
  24. 24 7月, 2008 1 次提交
    • A
      ext4: Don't allow lg prealloc list to be grow large. · 6be2ded1
      Aneesh Kumar K.V 提交于
      Currently, the locality group prealloc list is freed only when there
      is a block allocation failure. This can result in large number of
      entries in the preallocation list making ext4_mb_use_preallocated()
      expensive.
      
      To fix this, we convert the locality group prealloc list to a hash
      list. The hash index is the order of number of blocks in the prealloc
      space with a max order of 9. When adding prealloc space to the list we
      make sure total entries for each order does not exceed 8. If it is
      more than 8 we discard few entries and make sure the we have only <= 5
      entries.
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      6be2ded1
  25. 30 4月, 2008 1 次提交