xfs
[Top] [All Lists]

Re: [PATCH 04/18] xfs: lockless per-ag lookups

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 04/18] xfs: lockless per-ag lookups
From: Alex Elder <aelder@xxxxxxx>
Date: Tue, 14 Sep 2010 12:28:47 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1284461777-1496-5-git-send-email-david@xxxxxxxxxxxxx>
References: <1284461777-1496-1-git-send-email-david@xxxxxxxxxxxxx> <1284461777-1496-5-git-send-email-david@xxxxxxxxxxxxx>
Reply-to: aelder@xxxxxxx
On Tue, 2010-09-14 at 20:56 +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> When we start taking a reference to the per-ag for every cached
> buffer in the system, kernel lockstat profiling on an 8-way create
> workload shows the mp->m_perag_lock has higher acquisition rates
> than the inode lock and has significantly more contention. That is,
> it becomes the highest contended lock in the system.
> 
> The perag lookup is trivial to convert to lock-less RCU lookups
> because perag structures never go away. Hence the only thing we need
> to protect against is tree structure changes during a grow. THis can
> be done simply by replacing the locking in xfs_perag_get() with RCU
> read locking. This removes the mp->m_perag_lock completely from this
> path.

Nice.

Reviewed-by: Alex Elder <aelder@xxxxxxx>

> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> ---
>  fs/xfs/xfs_ag.h    |    3 +++
>  fs/xfs/xfs_mount.c |   25 +++++++++++++++++--------
>  2 files changed, 20 insertions(+), 8 deletions(-)


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