On Tue, Aug 27, 2024 at 09:18:58PM -0400, Rik van Riel wrote: > On Tue, 2024-08-27 at 13:09 +0200, Johannes Weiner wrote: > > > > I agree with this. The defer mode is an improvement over the upstream > > status quo, no doubt. However, both defer mode and the shrinker solve > > the issue of memory waste under pressure, while the shrinker permits > > more desirable behavior when memory is abundant. > > > > So my take is that the shrinker is the way to go, and I don't see a > > bonafide usecase for defer mode that the shrinker couldn't cover. > > > > > I would like to take one step back, and think about what some real > world workloads might want as a tunable for THP. > > Workload owners are going to have a real problem trying to figure > out what the best value of max_ptes_none should be for their > workloads. > > However, giving workload owners the ability to say "this workload > should not waste more than 1GB of memory on zero pages inside THPs", > or 500MB, or 4GB or whatever, would then allow the kernel to > automatically adjust the max_ptes_none threshold. The problem is that we don't have and cannot have the info on zero pages inside THPs readily available. It requires memory scanning which is prohibitively expensive if we want the info to be somewhat up-to-date. We don't have enough input from HW on the access pattern. It would be nice to decouple A/D bit (or maybe just A) from page table structure and get higher resolution on the access pattern for THPs. I tried to talk to HW folk, but it went nowhere. Maybe if there would be a customer demand... Just saying... -- Kiryl Shutsemau / Kirill A. Shutemov