On Fri, Jun 11, 2021 at 6:08 PM Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> wrote: > > In discussion with other MM developers around how idle page tracking > should be fixed for transparent huge pages, several expressed the opinion > that it should be removed as it is inefficient at accomplishing the > job that it is supposed to, and we have better mechanisms (eg uffd) for > accomplishing the same goals these days. > > Mark the feature as BROKEN for now and we can remove it entirely in a > few months if nobody complains. It is not enabled by Android, ChromeOS, > Debian, Fedora or SUSE. Red Hat enabled it with RHEL-8.1 and UEK followed > suit, but I have been unable to find why RHEL enabled it. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Acked-by: Yu Zhao <yuzhao@xxxxxxxxxx> It had been broken on arm64 (corrupting user data) until commit 07509e10dcc7 ("arm64: pgtable: Fix pte_accessible()") came along. It may also break functions that call pte/pmd_mkold() but not test_and_clear_young(), e.g., it breaks MADV_FREE because page_referenced() will return true upon seeing PageYoung(), which in turn makes the page reclaim reject the madvise()'ed pages. > --- > mm/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..311b50bb92ce 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -772,7 +772,7 @@ config DEFERRED_STRUCT_PAGE_INIT > > config IDLE_PAGE_TRACKING > bool "Enable idle page tracking" > - depends on SYSFS && MMU > + depends on SYSFS && MMU && BROKEN > select PAGE_EXTENSION if !64BIT > help > This feature allows to estimate the amount of user pages that have > -- > 2.30.2 > >