All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Dave Chinner <david@fromorbit.com>
Cc: Carlos Maiolino <cmaiolino@redhat.com>, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 2/2] xfs: Limit total allocation request to maximum possible
Date: Wed, 25 Sep 2019 07:53:08 -0400	[thread overview]
Message-ID: <20190925115308.GA21991@bfoster> (raw)
In-Reply-To: <20190924205029.GF16973@dread.disaster.area>

On Wed, Sep 25, 2019 at 06:50:29AM +1000, Dave Chinner wrote:
> On Wed, Sep 18, 2019 at 10:24:53AM +0200, Carlos Maiolino wrote:
> > The original allocation request may have a total value way beyond
> > possible limits.
> > 
> > Trim it down to the maximum possible if needed
> > 
> > Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> > ---
> >  fs/xfs/libxfs/xfs_bmap.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
> > index 07aad70f3931..3aa0bf5cc7e3 100644
> > --- a/fs/xfs/libxfs/xfs_bmap.c
> > +++ b/fs/xfs/libxfs/xfs_bmap.c
> > @@ -3477,6 +3477,11 @@ xfs_bmap_btalloc(
> >  			error = xfs_bmap_btalloc_filestreams(ap, &args, &blen);
> >  		else
> >  			error = xfs_bmap_btalloc_nullfb(ap, &args, &blen);
> > +
> > +		/* We can never have total larger than blen, so trim it now */
> 
> Yes we can. blen is typically the largest contiguous extent in the
> filesystem or AG in question. It is not typically the total free
> space in the AG, which only occurs when the AG is empty. i.e. in
> normal situations, we can allocate both blen and the rest of the
> metadata from the same AG as there is more than one free extent in
> the AG.
> 

Right..

> I think that for the purposes of a single > AG size allocation, the
> total needs to be clamped to the free space in the AG that is
> selected, not the length of the allocation we are trying....
> 

As already noted, I do think args.total could use some work. But unless
I'm missing something about the set of callers modified in the original
patch, I'd rather not tweak a core bmap mechanism in service to callers
that have no reason to use said mechanism in the first place.

And I know that such a change would affect legitimate args.total users
too and so still might be appropriate, I just think that's something for
a separate patch (even if in the same series)...

Brian

> Cheers,
> 
> Dave.
> -- 
> Dave Chinner
> david@fromorbit.com

      reply	other threads:[~2019-09-25 11:53 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-18  8:24 [PATCH RFC 0/2] A small improvement in the allocation algorithm Carlos Maiolino
2019-09-18  8:24 ` [PATCH 1/2] xfs: cap longest free extent to maximum allocatable Carlos Maiolino
2019-09-18 12:27   ` Brian Foster
2019-09-23 12:25     ` Carlos Maiolino
2019-09-18  8:24 ` [PATCH 2/2] xfs: Limit total allocation request to maximum possible Carlos Maiolino
2019-09-18 12:28   ` Brian Foster
2019-09-23 12:39     ` Carlos Maiolino
2019-09-23 13:11       ` Brian Foster
2019-09-24  8:07         ` Carlos Maiolino
2019-09-24 20:50   ` Dave Chinner
2019-09-25 11:53     ` Brian Foster [this message]

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=20190925115308.GA21991@bfoster \
    --to=bfoster@redhat.com \
    --cc=cmaiolino@redhat.com \
    --cc=david@fromorbit.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.