On 5/17/26 15:54, Zi Yan wrote:
> collapse_file() is capable of collapsing pagecache folios from writable
> files to PMD folios.  Now enable clean pagecache folio collapse in
> addition to read-only pagecache folio collapse by removing the
> inode_is_open_for_write() from file_thp_enabled() and only performing
> filemap_flush() if the file is read-only.
> 
> This means userspace needs to explicitly flush the content of pagecache
> folios before khugepaged can collapse the folios, or use
> madvise(MADV_COLLAPSE), which does the flush in the retry.  The reason is
> that blindly enabling dirty pagecache folio from writable files collapse
> makes khugepaged flush these folios all the time.  It is undesirable to
> cause system level pagecache flushes.
> 
> To properly support dirty pagecache folio collapse, filemap_flush() needs
> to be avoided.  Potentially, merging associated buffer instead of dropping
> it with filemap_release_folio() might be needed.
> 
> NOTE: this breaks khugepaged selftests for writable file pagecache
> collapse, which is set to fail all the time.  The next commit fixes it.
> 
> Signed-off-by: Zi Yan <[email protected]>
> Reviewed-by: Lance Yang <[email protected]>
> Cc: Al Viro <[email protected]>
> Cc: Baolin Wang <[email protected]>
> Cc: Barry Song <[email protected]>
> Cc: Chris Mason <[email protected]>
> Cc: Christian Brauner <[email protected]>
> Cc: David Hildenbrand (Arm) <[email protected]>
> Cc: David Sterba <[email protected]>
> Cc: Dev Jain <[email protected]>
> Cc: Jan Kara <[email protected]>
> Cc: Liam Howlett <[email protected]>
> Cc: Lorenzo Stoakes <[email protected]>
> Cc: Matthew Wilcox (Oracle) <[email protected]>
> Cc: Michal Hocko <[email protected]>
> Cc: Mike Rapoport <[email protected]>
> Cc: Nico Pache <[email protected]>
> Cc: Ryan Roberts <[email protected]>
> Cc: Shuah Khan <[email protected]>
> Cc: Song Liu <[email protected]>
> Cc: Suren Baghdasaryan <[email protected]>
> Cc: Vlastimil Babka <[email protected]>

Acked-by: David Hildenbrand (Arm) <[email protected]>

-- 
Cheers,

David

Reply via email to