On Fri, Oct 18, 2024 at 6:03 AM Michal Hocko <mhocko@xxxxxxxx> wrote: > > On Tue 15-10-24 08:58:59, Suren Baghdasaryan wrote: > > On Tue, Oct 15, 2024 at 8:42 AM David Hildenbrand <david@xxxxxxxxxx> wrote: > [...] > > > Right, I think what John is concerned about (and me as well) is that > > > once a new feature really needs a page flag, there will be objection > > > like "no you can't, we need them for allocation tags otherwise that > > > feature will be degraded". > > > > I do understand your concern but IMHO the possibility of degrading a > > feature should not be a reason to always operate at degraded capacity > > (which is what we have today). If one is really concerned about > > possible future regression they can set > > CONFIG_PGALLOC_TAG_USE_PAGEFLAGS=n and keep what we have today. That's > > why I'm strongly advocating that we do need > > CONFIG_PGALLOC_TAG_USE_PAGEFLAGS so that the user has control over how > > this scarce resource is used. > > I really do not think users will know how/why to setup this and I wouldn't > even bother them thinking about that at all TBH. > > This is an implementation detail. It is fine to reuse unused flags space > as a storage as a performance optimization but why do you want users to > bother with that? Why would they ever want to say N here? In this patch you can find a couple of warnings that look like this: pr_warn("With module %s there are too many tags to fit in %d page flag bits. Memory profiling is disabled!\n", mod->name, NR_UNUSED_PAGEFLAG_BITS); emitted when we run out of page flag bits during a module loading, pr_err("%s: alignment %lu is incompatible with allocation tag indexing, disable CONFIG_PGALLOC_TAG_USE_PAGEFLAGS", mod->name, align); emitted when the arch-specific section alignment is incompatible with alloc_tag indexing. I'll change the first one to also specifically guide the user to disable CONFIG_PGALLOC_TAG_USE_PAGEFLAGS. When these happen, memory profiling gets disabled automatically. These two cases would be the main ones when the user would want to disable CONFIG_PGALLOC_TAG_USE_PAGEFLAGS to keep memory profiling enabled. I also think when we auto-disable memory profiling at runtime like that, I should make /proc/allocinfo empty so that it's apparent it is disabled and the user does not use stale data. > -- > Michal Hocko > SUSE Labs