1. 10 2月, 2007 4 次提交
    • D
      [XFS] Make growfs work for amounts greater than 2TB · 20f4ebf2
      David Chinner 提交于
      The free block modification code has a 32bit interface, limiting the size
      the filesystem can be grown even on 64 bit machines. On 32 bit machines,
      there are other 32bit variables in transaction structures and interfaces
      that need to be expanded to allow this to work.
      
      SGI-PV: 959978
      SGI-Modid: xfs-linux-melb:xfs-kern:27894a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      20f4ebf2
    • D
      [XFS] Fix UP build breakage due to undefined m_icsb_mutex. · 03135cf7
      David Chinner 提交于
      SGI-PV: 952227
      SGI-Modid: xfs-linux-melb:xfs-kern:27692a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      03135cf7
    • D
      [XFS] Reduction global superblock lock contention near ENOSPC. · 20b64285
      David Chinner 提交于
      The existing per-cpu superblock counter code uses the global superblock
      spin lock when we approach ENOSPC for global synchronisation. On larger
      machines than this code was originally tested on this can still get
      catastrophic spinlock contention due increasing rebalance frequency near
      ENOSPC.
      
      By introducing a sleeping lock that is used to serialise balances and
      modifications near ENOSPC we prevent contention from needlessly from
      wasting the CPU time of potentially hundreds of CPUs.
      
      To reduce the number of balances occuring, we separate the need rebalance
      case from the slow allocate case. Now, a counter running dry will trigger
      a rebalance during which counters are disabled. Any thread that sees a
      disabled counter enters a different path where it waits on the new mutex.
      When it gets the new mutex, it checks if the counter is disabled. If the
      counter is disabled, then we _know_ that we have to use the global counter
      and lock and it is safe to do so immediately. Otherwise, we drop the mutex
      and go back to trying the per-cpu counters which we know were re-enabled.
      
      SGI-PV: 952227
      SGI-Modid: xfs-linux-melb:xfs-kern:27612a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      20b64285
    • D
      [XFS] Keep stack usage down for 4k stacks by using noinline. · 7989cb8e
      David Chinner 提交于
      gcc-4.1 and more recent aggressively inline static functions which
      increases XFS stack usage by ~15% in critical paths. Prevent this from
      occurring by adding noinline to the STATIC definition.
      
      Also uninline some functions that are too large to be inlined and were
      causing problems with CONFIG_FORCED_INLINING=y.
      
      Finally, clean up all the different users of inline, __inline and
      __inline__ and put them under one STATIC_INLINE macro. For debug kernels
      the STATIC_INLINE macro uninlines those functions.
      
      SGI-PV: 957159
      SGI-Modid: xfs-linux-melb:xfs-kern:27585a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NDavid Chatterton <chatz@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      7989cb8e
  2. 07 9月, 2006 1 次提交
    • D
      [XFS] Prevent free space oversubscription and xfssyncd looping. · 4be536de
      David Chinner 提交于
      The fix for recent ENOSPC deadlocks introduced certain limitations on
      allocations. The fix could cause xfssyncd to loop endlessly if we did not
      leave some space free for the allocator to work correctly. Basically, we
      needed to ensure that we had at least 4 blocks free for an AG free list
      and a block for the inode bmap btree at all times.
      
      However, this did not take into account the fact that each AG has a free
      list that needs 4 blocks. Hence any filesystem with more than one AG could
      cause oversubscription of free space and make xfssyncd spin forever trying
      to allocate space needed for AG freelists that was not available in the
      AG.
      
      The following patch reserves space for the free lists in all AGs plus the
      inode bmap btree which prevents oversubscription. It also prevents those
      blocks from being reported as free space (as they can never be used) and
      makes the SMP in-core superblock accounting code and the reserved block
      ioctl respect this requirement.
      
      SGI-PV: 955674
      SGI-Modid: xfs-linux-melb:xfs-kern:26894a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NDavid Chatterton <chatz@sgi.com>
      4be536de
  3. 28 6月, 2006 2 次提交
  4. 20 6月, 2006 1 次提交
  5. 09 6月, 2006 4 次提交
  6. 11 4月, 2006 1 次提交
  7. 31 3月, 2006 1 次提交
  8. 29 3月, 2006 1 次提交
  9. 14 3月, 2006 4 次提交
  10. 15 1月, 2006 1 次提交
  11. 11 1月, 2006 2 次提交
  12. 10 1月, 2006 1 次提交
  13. 02 11月, 2005 7 次提交
  14. 21 6月, 2005 3 次提交
  15. 06 5月, 2005 1 次提交
  16. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4