On Thu, Feb 09, 2023 at 10:29:43AM +0000, David Howells wrote: > + npages = alloc_pages_bulk_list(GFP_USER, npages, &pages); Please don't use alloc_pages_bulk_list(). If nobody uses it, it can go away again soon. Does alloc_pages_bulk_array() work for you? It's faster. > + /* Free any pages that didn't get touched at all. */ > + for (; reclaim >= PAGE_SIZE; reclaim -= PAGE_SIZE) > + __free_page(bv[--npages].bv_page); If you have that array, you can then use release_pages() to free them, which will be faster.