xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, for-next, updated. v3.5-rc1-4

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, for-next, updated. v3.5-rc1-44-g9a57fa8
From: xfs@xxxxxxxxxxx
Date: Sun, 29 Jul 2012 17:02:33 -0500
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".

The branch, for-next has been updated
  9a57fa8 xfs: wait for the write the superblock on unmount
  8375f92 xfs: re-enable xfsaild idle mode and fix associated races
  4f59af7 xfs: remove iolock lock classes
  5a15322 xfs: avoid the iolock in xfs_free_eofblocks for evicted inodes
  0b56185 xfs: do not take the iolock in xfs_inactive
  fe67be0 xfs: remove xfs_inactive_attrs
  b373e98 xfs: clean up xfs_inactive
  be60fe5 xfs: do not read the AGI buffer in xfs_dialloc until nessecary
  55d6af6 xfs: refactor xfs_ialloc_ag_select
  4bb6106 xfs: add a short cut to xfs_dialloc for the non-NULL agbp case
  0835890 xfs: remove the alloc_done argument to xfs_dialloc
  f2ecc5e xfs: split xfs_dialloc
      from  824c313139c2ce678011bf11c4823a0c99651c1f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9a57fa8ee7c29e11c2a29ce058573ba99157eda7
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Tue Jul 24 10:59:19 2012 -0500

    xfs: wait for the write the superblock on unmount
    
    v2: Add the xfs_buf_lock to xfs_quiesce_attr().
        Add explaination why xfs_buf_lock() is used to wait for write.
    
    xfs_wait_buftarg() does not wait for the completion of the write of the
    uncached superblock. This write can race with the shutdown of the log
    and causes a panic if the write does not win the race.
    
    During the log write, xfsaild_push() will lock the buffer and set the
    XBF_ASYNC flag. Because the XBF_FLAG is set, complete() is not performed
    on the buffer's iowait entry, we cannot call xfs_buf_iowait() to wait
    for the write to complete. The buffer's lock is held until the write is
    complete, so we can block on a xfs_buf_lock() request to be notified
    that the write is complete.
    
    Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 8375f922aaa6e7a880022529202fb486315568c3
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date:   Thu Jun 28 06:52:56 2012 -0400

    xfs: re-enable xfsaild idle mode and fix associated races
    
    xfsaild idle mode logic currently leads to a couple hangs:
    
    1.) If xfsaild is rescheduled in during an incremental scan
        (i.e., tout != 0) and the target has been updated since
        the previous run, we can hit the new target and go into
        idle mode with a still populated ail.
    2.) A wake up is only issued when the target is pushed forward.
        The wake up can race with xfsaild if it is currently in the
        process of entering idle mode, causing future wake up
        events to be lost.
    
    These hangs have been reproduced and verified as fixed by
    running xfstests 273 in a loop on a slightly modified upstream
    kernel. The kernel is modified to re-enable idle mode as
    previously implemented (when count == 0) and with a revert of
    commit 670ce93f, which includes performance improvements that
    make this harder to reproduce.
    
    The solution, the algorithm for which has been outlined by
    Dave Chinner, is to modify xfsaild to enter idle mode only when
    the ail is empty and the push target has not been moved forward
    since the last push.
    
    Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 4f59af758f9092bc7b266ca919ce6067170e5172
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 11:13:33 2012 -0400

    xfs: remove iolock lock classes
    
    Content-Disposition: inline; filename=xfs-remove-iolock-classes
    
    Now that we never take the iolock during inode reclaim we don't need
    to play games with lock classes.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Rich Johnston <rjohnston@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 5a15322da1a51ad8f3af1962de355885b6c606f2
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 11:13:32 2012 -0400

    xfs: avoid the iolock in xfs_free_eofblocks for evicted inodes
    
    Same rational as the last patch - these inodes are not reachable, so
    don't bother with locking.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Rich Johnston <rjohnston@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 0b56185b0d64ef89dad1c85bb7403fa762cbe50d
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 11:13:31 2012 -0400

    xfs: do not take the iolock in xfs_inactive
    
    An inode that enters xfs_inactive has been removed from all global
    lists but the inode hash, and can't be recycled in xfs_iget before
    it has been marked reclaimable.  Thus taking the iolock in here
    is not nessecary at all, and given the amount of lockdep false
    positives it has triggered already I'd rather remove the locking.
    
    The only change outside of xfs_inactive is relaxing an assert in
    xfs_itruncate_extents.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Rich Johnston <rjohnston@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit fe67be036ff2f713b1c5f24dd4cdffae75bcb97a
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 11:13:30 2012 -0400

    xfs: remove xfs_inactive_attrs
    
    Remove this helper as the code flow is a lot more obvious when it gets
    merged into its only caller.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Rich Johnston <rjohnston@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit b373e98daa70d7ddb10f53f81e711c4d17651795
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 11:13:29 2012 -0400

    xfs: clean up xfs_inactive
    
    The code to reserve log space and join the inode to the transaction is
    common for all cases, so don't duplicate it.  Also remove the trivial
    xfs_inactive_symlink_local helper which can simply be opencode now.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Rich Johnston <rjohnston@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit be60fe54b216a62403b816d3930a66ad7c51cbc6
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 10:54:50 2012 -0400

    xfs: do not read the AGI buffer in xfs_dialloc until nessecary
    
    Refactor the AG selection loop in xfs_dialloc to operate on the in-memory
    perag data as much as possible.  We only read the AGI buffer once we have
    selected an AG to allocate inodes now instead of for every AG considered.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 55d6af64cb8bf8c7e9a84b254d2c3479be8c067c
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 10:54:49 2012 -0400

    xfs: refactor xfs_ialloc_ag_select
    
    Loop over the in-core perag structures and prefer using pagi_freecount over
    going out to the AGI buffer where possible.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 4bb61069d2019dea2a7e4e0f4432101f03a9b820
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 10:54:48 2012 -0400

    xfs: add a short cut to xfs_dialloc for the non-NULL agbp case
    
    In this case we already have selected an AG and know it has free space
    beause the buffer lock never got released.  Jump directly into 
xfs_dialloc_ag
    and short cut the AG selection loop.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 08358906ed78f6ab4d3ff8e4fd1b87b9a4aea645
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 10:54:47 2012 -0400

    xfs: remove the alloc_done argument to xfs_dialloc
    
    We can simplify check the IO_agbp pointer for being non-NULL instead of
    passing another argument through two layers of function calls.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit f2ecc5e453134a13c3b2b0f2cac52ab2d5c540d7
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Wed Jul 4 10:54:46 2012 -0400

    xfs: split xfs_dialloc
    
    Move the actual allocation once we have selected an allocation group into a
    separate helper, and make xfs_dialloc a wrapper around it.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Reviewed-by: Ben Myers <bpm@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

-----------------------------------------------------------------------

Summary of changes:
 fs/xfs/xfs_ialloc.c     |  437 ++++++++++++++++++++++++-----------------------
 fs/xfs/xfs_ialloc.h     |    2 -
 fs/xfs/xfs_iget.c       |   15 --
 fs/xfs/xfs_inode.c      |    9 +-
 fs/xfs/xfs_inode.h      |    4 +-
 fs/xfs/xfs_mount.c      |    9 +
 fs/xfs/xfs_super.c      |   18 +-
 fs/xfs/xfs_sync.c       |    9 +
 fs/xfs/xfs_trans_ail.c  |   35 +++-
 fs/xfs/xfs_trans_priv.h |    1 +
 fs/xfs/xfs_utils.c      |   17 +-
 fs/xfs/xfs_vnodeops.c   |  275 +++++++++--------------------
 12 files changed, 365 insertions(+), 466 deletions(-)


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, for-next, updated. v3.5-rc1-44-g9a57fa8, xfs <=