On Fri, Feb 05 2021, 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. But if a page is still in use, it is not put on the list. if (!put_page_testzero(page)) continue; NeilBrown
Attachment:
signature.asc
Description: PGP signature