xfs
[Top] [All Lists]

[PATCH 3/5] xfs: do not update xa_last_pushed_lsn for locked items

To: stable@xxxxxxxxxx
Subject: [PATCH 3/5] xfs: do not update xa_last_pushed_lsn for locked items
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Fri, 14 Oct 2011 14:50:51 -0400
Cc: xfs@xxxxxxxxxxx
References: <20111014185048.893798829@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: quilt/0.48-1
commit bc6e588a8971aa74c02e42db4d6e0248679f3738 upstream

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>

Index: xfs/fs/xfs/xfs_trans_ail.c
===================================================================
--- xfs.orig/fs/xfs/xfs_trans_ail.c     2011-10-14 14:42:03.004395373 +0200
+++ xfs/fs/xfs/xfs_trans_ail.c  2011-10-14 14:42:22.687898198 +0200
@@ -491,7 +491,6 @@ xfs_ail_worker(
 
                case XFS_ITEM_LOCKED:
                        XFS_STATS_INC(xs_push_ail_locked);
-                       ailp->xa_last_pushed_lsn = lsn;
                        stuck++;
                        break;
 

<Prev in Thread] Current Thread [Next in Thread>