Re: [PATCH] mm/madvise: fix madvise_pageout for private file mappings

From: David Hildenbrand
Date: Thu Dec 01 2022 - 08:03:27 EST


+ * If the VMA belongs to a private file mapping, there can be private
+ * dirty pages which can be paged out if even this process is neither
+ * owner nor write capable of the file. Cache the file access check
+ * here and use it later during page walk.
+ */
+ can_pageout_file = can_do_file_pageout(vma);

Why not move that into madvise_pageout_page_range() ? Avoids passing this variable to that function.

In fact, why not even call that function directly instead of storing that in madvise_walk_private(). The function is extremely lightweight.

lru_add_drain();
tlb_gather_mmu(&tlb, mm);
- madvise_pageout_page_range(&tlb, vma, start_addr, end_addr);
+ madvise_pageout_page_range(&tlb, vma, start_addr, end_addr, can_pageout_file);
tlb_finish_mmu(&tlb);
return 0;

--
Thanks,

David / dhildenb