xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, for-linus, updated. v3.1-rc3-

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, for-linus, updated. v3.1-rc3-1147-g8e749e3
From: xfs@xxxxxxxxxxx
Date: Tue, 11 Oct 2011 14:07:07 -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-linus has been updated
  8e749e3 xfs: add AIL pushing tracepoints
  0030807 xfs: revert to using a kthread for AIL pushing
  17b3847 xfs: force the log if we encounter pinned buffers in .iop_pushbuf
  bc6e588 xfs: do not update xa_last_pushed_lsn for locked items
      from  2d2422aebc037095f77551119f795449d29befed (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 8e749e30958c1e592b4001a4a186d2b133df0aa0
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Oct 11 15:14:11 2011 +0000

    xfs: add AIL pushing tracepoints
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 0030807c66f058230bcb20d2573bcaf28852e804
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Oct 11 11:14:10 2011 -0400

    xfs: revert to using a kthread for AIL pushing
    
    Currently we have a few issues with the way the workqueue code is used to
    implement AIL pushing:
    
     - it accidentally uses the same workqueue as the syncer action, and thus
       can be prevented from running if there are enough sync actions active
       in the system.
     - it doesn't use the HIGHPRI flag to queue at the head of the queue of
       work items
    
    At this point I'm not confident enough in getting all the workqueue flags 
and
    tweaks right to provide a perfectly reliable execution context for AIL
    pushing, which is the most important piece in XFS to make forward progress
    when the log fills.
    
    Revert back to use a kthread per filesystem which fixes all the above issues
    at the cost of having a task struct and stack around for each mounted
    filesystem.  In addition this also gives us much better ways to diagnose
    any issues involving hung AIL pushing and removes a small amount of code.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reported-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
    Tested-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 17b38471c3c07a49f0bbc2ecc2e92050c164e226
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Oct 11 15:14:09 2011 +0000

    xfs: force the log if we encounter pinned buffers in .iop_pushbuf
    
    We need to check for pinned buffers even in .iop_pushbuf given that inode
    items flush into the same buffers that may be pinned directly due operations
    on the unlinked inode list operating directly on buffers.  To do this add a
    return value to .iop_pushbuf that tells the AIL push about this and use
    the existing log force mechanisms to unpin it.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reported-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
    Tested-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit bc6e588a8971aa74c02e42db4d6e0248679f3738
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Oct 11 15:14:08 2011 +0000

    xfs: do not update xa_last_pushed_lsn for locked items
    
    If an item was locked we should not update xa_last_pushed_lsn and thus skip
    it when restarting the AIL scan as we need to be able to lock and write it
    out as soon as possible.  Otherwise heavy lock contention might starve AIL
    pushing too easily, especially given the larger backoff once we moved
    xa_last_pushed_lsn all the way to the target lsn.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reported-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
    Tested-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
    Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

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

Summary of changes:
 fs/xfs/xfs_buf_item.c   |    3 +-
 fs/xfs/xfs_dquot_item.c |   10 ++++--
 fs/xfs/xfs_inode_item.c |   10 ++++--
 fs/xfs/xfs_linux.h      |    2 +
 fs/xfs/xfs_super.c      |   13 +------
 fs/xfs/xfs_trace.h      |   37 +++++++++++++++++++
 fs/xfs/xfs_trans.h      |    2 +-
 fs/xfs/xfs_trans_ail.c  |   91 +++++++++++++++++++++++++++++------------------
 fs/xfs/xfs_trans_priv.h |    8 +----
 9 files changed, 114 insertions(+), 62 deletions(-)


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, for-linus, updated. v3.1-rc3-1147-g8e749e3, xfs <=