On Fri, Feb 05, 2021 at 08:20:28PM +0000, Chuck Lever wrote: > Baby steps. > > Because I'm perverse I started with bulk page freeing. In the course > of trying to invent a new API, I discovered there already is a batch > free_page() function called release_pages(). > > It seems to work as advertised for pages that are truly no longer > in use (ie RPC/RDMA pages) but not for pages that are still in flight > but released (ie TCP pages). > > release_pages() chains the pages in the passed-in array onto a list > by their page->lru fields. This seems to be a problem if a page > is still in use. I thought I remembered reading an lwn article about bulk page allocation. Looking around now all I can see is https://lwn.net/Articles/684616/ https://lwn.net/Articles/711075/ and I can't tell if any of that work was ever finished. --b.