On 1/24/22 05:18, Matthew Wilcox wrote:
On Sun, Jan 23, 2022 at 11:52:07PM -0800, John Hubbard wrote:
To ground this in reality, one of the partial call stacks is:
do_direct_IO()
dio_zero_block()
page = ZERO_PAGE(0); <-- This is a problem
I'm not sure what to use, instead of that zero page! The zero page
doesn't need to be allocated nor tracked, and so any replacement
approaches would need either other storage, or some horrid scheme that I
won't go so far as to write on the screen. :)
I'm not really sure what the problem is.
include/linux/mm.h: is_zero_pfn(page_to_pfn(page));
and release_pages() already contains:
if (is_huge_zero_page(page))
continue;
Why can't the BIO release function contain an is_zero_pfn() check?
"OK." (With potential modifications as noted in the other thread with
Jan Kara and Chaitanya, we'll see.)
Thanks for responding with that answer so quickly, much appreciated!
thanks,
--
John Hubbard
NVIDIA