On Thu, May 25, 2023 at 9:45 AM David Hildenbrand <david@xxxxxxxxxx> wrote: > > I think the correct way to test for a zero page is > is_zero_pfn(page_to_pfn(page). Yeah. Except it's really ugly and strange, and we should probably add a helper for that pattern. The reason it has that odd "look at pfn" is just because I think the first users were in the page table code, which had the pfn already, and the test is basically based on the zero_page_mask thing that the affected architectures have. So I suspect we should add that is_zero_pfn(page_to_pfn(page)) as a helper inline function rather than write it out even more times (that "is this 'struct page' a zero page" pattern already exists in /proc and a few other places. is_longterm_pinnable_page() already has it, so adding it as a helper there in <linux/mm.h> is probably a good idea. Linus