> How stale could the information in the utilization bucket be? The staleness would be capped by the duration of the scan, 70s in in the example. > Is it possible that THP shrinker splits a THP used to have a lot of > zero-filled subpages but now have all subpages filled with useful > values? This is possible, but we free only the zero pages, which cannot have any useful values. How often it happens that THPs move utilization buckets should be workload dependent. > In Patch 2, split_huge_page() only unmap zero-filled subpages, > but for THP shrinker, should it verify the utilization before it > splits the page? I think we should add this check to verify that it is still in the lowest bucket before having the shrinker split the page. The utilization could have changed and this way we do not need to worry about workloads where THPs move utilization buckets. Thanks!