On Tue, Aug 29, 2023 at 03:02:22PM +0100, Ryan Roberts wrote: > >> + if (put_devmap_managed_page(&folio->page)) > >> + continue; > >> + if (folio_put_testzero(folio)) > > > > We're only putting one ref for the zone_device folios? Surely > > this should be ref_sub_and_test like below? > > Good point. This function is originally a copy/paste of release_pages(), and I > obviously missed this. In fact, looking at it again today, I think I'll factor > out the vast majority into a common helper, since I'm currently duplicating a > whole bunch here. > > In practice I think all devmap folios will be small today though? So while I > agree I need to fix this, I think in practice it will currently do the right thing? I think the devdax code uses 2MB folios. > > You'll be glad to know I've factored out a nice little helper for that. > > OK, what's it called? This is just copied from release_pages() at the moment. > Happy to use your helper in the refactored common helper. I'll send out those patches today.