On Sun, Jun 04, 2023 at 10:48:47PM +0100, Matthew Wilcox wrote: > On Sun, Jun 04, 2023 at 11:09:25AM -0700, Darrick J. Wong wrote: > > On Fri, Jun 02, 2023 at 11:24:42PM +0100, Matthew Wilcox (Oracle) wrote: > > > + do { > > > + err = -ENOMEM; > > > + if (order == 1) > > > + order = 0; > > > > Doesn't this interrupt the scale-down progression 2M -> 1M -> 512K -> > > 256K -> 128K -> 64K -> 32K -> 16K -> 4k? What if I want 8k folios? > > You can't have order-1 file/anon folios. We have deferred_list in the > third page, so we have to have at least three pages in every large folio. > I forget exactly what it's used for; maybe there's a way to do without > it, but for now that's the rule. Ahahaha, ok. I hadn't realized/remembered that. /me wonders if that ought to be captured in a header as some static inline clamping function instead of opencoded, but afaict there's only four places around the kernel that do/need this. Really it's a pity we can't do for order in 9 8 7 6 5 4 3 2 0; do Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D