1. 16 Mar, 2010 2 commits
    • Alex Elder's avatar
      xfs: use scalable vmap API · 8a262e57
      Alex Elder authored
      Re-apply a commit that had been reverted due to regressions
      that have since been fixed.
      
          From 95f8e302 Mon Sep 17 00:00:00 2001
          From: Nick Piggin <npiggin@suse.de>
          Date: Tue, 6 Jan 2009 14:43:09 +1100
      
          Implement XFS's large buffer support with the new vmap APIs. See the vmap
          rewrite (db64fe02) for some numbers. The biggest improvement that comes from
          using the new APIs is avoiding the global KVA allocation lock on every call.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Reviewed-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      
      Only modifications here were a minor reformat, plus making the patch
      apply given the new use of xfs_buf_is_vmapped().
      Modified-by: default avatarAlex Elder <aelder@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      8a262e57
    • Alex Elder's avatar
      xfs: remove old vmap cache · cd9640a7
      Alex Elder authored
      Re-apply a commit that had been reverted due to regressions
      that have since been fixed.
      
          Original commit: d2859751
          Author: Nick Piggin <npiggin@suse.de>
          Date: Tue, 6 Jan 2009 14:40:44 +1100
      
          XFS's vmap batching simply defers a number (up to 64) of vunmaps,
          and keeps track of them in a list. To purge the batch, it just goes
          through the list and calls vunamp on each one. This is pretty poor:
          a global TLB flush is generally still performed on each vunmap, with
          the most expensive parts of the operation being the broadcast IPIs
          and locking involved in the SMP callouts, and the locking involved
          in the vmap management -- none of these are avoided by just batching
          up the calls. I'm actually surprised it ever made much difference.
          (Now that the lazy vmap allocator is upstream, this description is
          not quite right, but the vunmap batching still doesn't seem to do
          much).
      
          Rip all this logic out of XFS completely. I will improve vmap
          performance and scalability directly in subsequent patch.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Reviewed-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      
      The only change I made was to use the "new" xfs_buf_is_vmapped()
      function in a place it had been open-coded in the original.
      Modified-by: default avatarAlex Elder <aelder@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      cd9640a7
  2. 08 Mar, 2010 38 commits