On 28 Apr 2026, at 16:22, Zi Yan wrote: > On 28 Apr 2026, at 16:19, David Hildenbrand (Arm) wrote: > >> On 4/28/26 22:17, Zi Yan wrote: >>> On 28 Apr 2026, at 16:07, David Hildenbrand (Arm) wrote: >>> >>>> On 4/28/26 21:56, Zi Yan wrote: >>>>> >>>>> >>>>> This patch breaks the khugepaged test for READ_ONLY_THP_FOR_FS. >>>>> >>>>> When I ran sudo ./khugepaged all:file ~/ on ext4, >>>>> >>>>> collapse_max_ptes_none (khugepaged:file) fails. >>>> >>>> madvise() still works? Is it maybe because of dirty folios? (but that >>>> should >>>> also be the case on write ...) >>> >>> I asked codex instead. >>> >>> Basically, mmap(MMAP_SHARED) makes the written folio dirty and the folio >>> survives the later drop_caches. Adding msync() fixes the issue. >> >> But why doesn't the write() make the folios dirty? Or are we running into >> some >> race condition where the old code just worked by chance? >> > > The fd is opened with O_DSYNC, so the data from write() is transferred to > disk when write() returns.
And the folio is clean. Best Regards, Yan, Zi

