Re: [PATCH 18/19] xfs: simplify and optimize the RT allocation fallback cascade

Christoph Hellwig
2023-12-15T04:12:54Z

On Thu, Dec 14, 2023 at 01:32:21PM -0800, Darrick J. Wong wrote:
> > 1) xfs_rtallocate_extent extents the minlen and reduces the maxlen due
>
> ^^^^^^^ extends?

Yes. I'm definitively talking about extents too much in my life :)

> > Move aligning the min and maxlen out of xfs_rtallocate_extent and into
> > a helper called directly by xfs_bmap_rtalloc. This allows just
> > continuing with the allocation if we have to drop the alignment instead
> > of going through the retry loop and also dropping the perfectly the
> > minlen adjustment that didn't cause the problem, and then just use
>
> "...dropping the perfectly *usable* minlen adjustment..." ?
>
> > a single retry that drops both the minlen and alignment requirement
> > when we really are out of space, thus consolidating cases (2) and (3)
> > above.
>
> How can we drop the minlen requirement, won't that result in undersize
> mapping allocations? Or is the subtlety here that for realtime files,
> that's ok because we never have forced multi-rtx allocations like we do
> for the data device?

The rtalloc minlen is different from the bmap minlen. The bmap minlen
is always 1 except for metadata XFS_BMAPI_CONTIG allocations, which
obviosuly can't happen for RT allocations. The rtalloc minlen starts
out as a single rtextent and is increases when we adjust the physical
allocation location to better align with the previous extent.