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

Reply via email to