On Wed, Oct 30, 2024 at 04:33:08PM +0800, gutierrez.asier@xxxxxxxxxxxxxxxxxxx wrote: > From: Asier Gutierrez <gutierrez.asier@xxxxxxxxxxxxxxxxxxx> > > Currently THP modes are set globally. It can be an overkill if only some > specific app/set of apps need to get benefits from THP usage. Moreover, various > apps might need different THP settings. Here we propose a cgroup-based THP > control mechanism. > > THP interface is added to memory cgroup subsystem. Existing global THP control > semantics is supported for backward compatibility. When THP modes are set > globally all the changes are propagated to memory cgroups. However, when a > particular cgroup changes its THP policy, the global THP policy in sysfs remains > the same. > > New memcg files are exposed: memory.thp_enabled and memory.thp_defrag, which > have completely the same format as global THP enabled/defrag. > > Child cgroups inherit THP settings from parent cgroup upon creation. Particular > cgroup mode changes aren't propagated to child cgroups. Cgroups are for hierarchical resource distribution. It's tempting to add parameters you would want for flat collections of processes, but it gets weird when it comes to inheritance and hiearchical semantics inside the cgroup tree - like it does here. So this is not a good fit. On this particular issue, I agree with what Willy and David: let's not proliferate THP knobs; let's focus on making them truly transparent.