On 4/30/26 17:18, Zi Yan wrote: > On 29 Apr 2026, at 11:35, 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 fix it. > > Sashiko: > > Is it acceptable to intentionally break the selftests in this commit? Each > commit should be self-contained and not knowingly introduce test regressions, > as this breaks bisectability. > > Answer: > > I am fine with squashing patch 14 into this one, but it is unlikely anyone > gets a kernel at exact this commit.
For bisecting maybe problematic. I wouldn't squash it, though, instead prepare the selftests in a different way beforehand, such that they won't get broken? -- Cheers, David

