Note that you do not want GUP to succeed on device page, i do not see where that is handled in the new code.
On Sun, Aug 15, 2021 at 1:40 PM John Hubbard jhubbard@nvidia.com wrote:
On 8/15/21 8:37 AM, Christoph Hellwig wrote:
diff --git a/include/linux/mm.h b/include/linux/mm.h index 8ae31622deef..d48a1f0889d1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1218,7 +1218,7 @@ __maybe_unused struct page *try_grab_compound_head(struct page *page, int refs, static inline __must_check bool try_get_page(struct page *page) { page = compound_head(page);
- if (WARN_ON_ONCE(page_ref_count(page) <= 0))
- if (WARN_ON_ONCE(page_ref_count(page) < (int)!is_zone_device_page(page)))
Please avoid the overly long line. In fact I'd be tempted to just not bother here and keep the old, more lose check. Especially given that John has a patch ready that removes try_get_page entirely.
Yes. Andrew has accepted it into mmotm.
Ralph's patch here was written well before my cleanup that removed try_grab_page() [1]. But now that we're here, if you drop this hunk then it will make merging easier, I think.
[1] https://lore.kernel.org/r/20210813044133.1536842-4-jhubbard@nvidia.com
thanks,
John Hubbard NVIDIA