On Wed, Dec 13, 2023 at 08:52:47AM +1030, Qu Wenruo wrote: > I'm recently converting btrfs (for now only metadata) to go larger (order > > 0) folios, and so far it looks pretty good (can already pass local fstests > runs). > > But to achieve that btrfs metadata is not utilizing __filemap_get_folio() at > all, but manually allocating larger folios, then attaching them to the > filemap. > > This is due to 2 factors: > > - We want fixed folio size > - We have our own fallback path > > The whole idea is go large or go bust, either we got a large folio > matching our request exactly, or we fall back to the old per-page > allocation (the cross-page handling infrastructure is here anyway). In the happy case, are all folios attached to the mapping of the same order? Or might you have one folio of eg, order-5 and another of order-2 because they're different types of metadata? I ask because we have patches out (not merged yet) that allow for setting min/max order, and what you're asking for sounds like it could be accommodated by that.