From: Brian Foster <bfoster@redhat.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH] xfs: perag initialization should only touch m_ag_max_usable for AG 0
Date: Wed, 20 Sep 2017 09:23:22 -0400 [thread overview]
Message-ID: <20170920132322.GC16481@bfoster.bfoster> (raw)
In-Reply-To: <20170919181041.GC7112@magnolia>
On Tue, Sep 19, 2017 at 11:10:41AM -0700, Darrick J. Wong wrote:
> We call __xfs_ag_resv_init to make a per-AG reservation for each AG.
> This makes the reservation per-AG, not per-filesystem. Therefore, it
> is incorrect to adjust m_ag_max_usable for each AG. Adjust it only
> when we're reserving AG 0's blocks so that we only do it once per fs.
>
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---
Reviewed-by: Brian Foster <bfoster@redhat.com>
> fs/xfs/libxfs/xfs_ag_resv.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_ag_resv.c b/fs/xfs/libxfs/xfs_ag_resv.c
> index b008ff3..df3e600 100644
> --- a/fs/xfs/libxfs/xfs_ag_resv.c
> +++ b/fs/xfs/libxfs/xfs_ag_resv.c
> @@ -156,7 +156,8 @@ __xfs_ag_resv_free(
> trace_xfs_ag_resv_free(pag, type, 0);
>
> resv = xfs_perag_resv(pag, type);
> - pag->pag_mount->m_ag_max_usable += resv->ar_asked;
> + if (pag->pag_agno == 0)
> + pag->pag_mount->m_ag_max_usable += resv->ar_asked;
> /*
> * AGFL blocks are always considered "free", so whatever
> * was reserved at mount time must be given back at umount.
> @@ -216,7 +217,14 @@ __xfs_ag_resv_init(
> return error;
> }
>
> - mp->m_ag_max_usable -= ask;
> + /*
> + * Reduce the maximum per-AG allocation length by however much we're
> + * trying to reserve for an AG. Since this is a filesystem-wide
> + * counter, we only make the adjustment for AG 0. This assumes that
> + * there aren't any AGs hungrier for per-AG reservation than AG 0.
> + */
> + if (pag->pag_agno == 0)
> + mp->m_ag_max_usable -= ask;
>
> resv = xfs_perag_resv(pag, type);
> resv->ar_asked = ask;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-09-20 13:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-19 18:10 [PATCH] xfs: perag initialization should only touch m_ag_max_usable for AG 0 Darrick J. Wong
2017-09-20 13:23 ` Brian Foster [this message]
2017-09-21 14:04 ` Christoph Hellwig
2017-09-21 17:12 ` Darrick J. Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170920132322.GC16481@bfoster.bfoster \
--to=bfoster@redhat.com \
--cc=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.