| To: | Dave Chinner <david@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 3/3] xfs: track AGs with reclaimable inodes in per-ag radix tree |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Thu, 15 Jul 2010 14:12:28 -0400 |
| Cc: | xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-mm@xxxxxxxxx |
| In-reply-to: | <1279194418-16119-4-git-send-email-david@xxxxxxxxxxxxx> |
| References: | <1279194418-16119-1-git-send-email-david@xxxxxxxxxxxxx> <1279194418-16119-4-git-send-email-david@xxxxxxxxxxxxx> |
| User-agent: | Mutt/1.5.20 (2009-08-17) |
> + */
> +static struct xfs_perag *
> +xfs_inode_ag_iter_next_pag(
> + struct xfs_mount *mp,
> + xfs_agnumber_t *first,
> + int tag)
> +{
> + struct xfs_perag *pag = NULL;
> +
> + if (tag == XFS_ICI_RECLAIM_TAG) {
> + int found;
> + int ref;
> +
> + spin_lock(&mp->m_perag_lock);
> + found = radix_tree_gang_lookup_tag(&mp->m_perag_tree,
> + (void **)&pag, *first, 1, tag);
> + if (found <= 0) {
> + spin_unlock(&mp->m_perag_lock);
> + return NULL;
> + }
> + *first = pag->pag_agno + 1;
> + /* open coded pag reference increment */
> + ref = atomic_inc_return(&pag->pag_ref);
> + spin_unlock(&mp->m_perag_lock);
> + trace_xfs_perag_get_reclaim(mp, pag->pag_agno, ref, _RET_IP_);
> + } else {
> + pag = xfs_perag_get(mp, *first);
> + (*first)++;
> + }
I wonder if we should just split the AG iterator for inode reclaim vs
the rest. We now have this difference in addition to taking the per-AG
lock exclusive instead of shared.
Anyway, the patch looks good for now,
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH 2/3] xfs: convert inode shrinker to per-filesystem contexts, Christoph Hellwig |
|---|---|
| Next by Date: | Re: [PATCH 5/5] xfs: fix memory reclaim recursion deadlock on locked inode buffer, Alex Elder |
| Previous by Thread: | [PATCH 3/3] xfs: track AGs with reclaimable inodes in per-ag radix tree, Dave Chinner |
| Next by Thread: | Practical Solutions News, Mike Stallfus |
| Indexes: | [Date] [Thread] [Top] [All Lists] |