On 11/27/23 01:26, Hyeonggon Yoo wrote: > On Fri, Nov 24, 2023 at 8:24 PM Vlastimil Babka <vbabka@xxxxxxx> wrote: >> > - >> > noalign [KNL,ARM] >> > >> > noaltinstr [S390] Disables alternative instructions patching >> > @@ -5887,12 +5883,6 @@ >> > own. >> > For more information see Documentation/mm/slub.rst. >> > >> > - slab_max_order= [MM, SLAB] >> > - Determines the maximum allowed order for slabs. >> > - A high setting may cause OOMs due to memory >> > - fragmentation. Defaults to 1 for systems with >> > - more than 32MB of RAM, 0 otherwise. >> >> I think here we should consider the long-term plan first. It's a bit >> unfortunate (in hindsight) SLUB brought its own prefix of parameters, even >> if some became interchangeable aliases later (slab/slub_nomerge), some not. > > Good point, thank you for pointing them out! > >> I think it would be best to unify them, and consider the string "slub" an >> implementation detail of the general "slab allocator" term going forward. > > So slab_{nomerge,min_objects,min_order, ...etc} are common to the > concept of slab so slab_$param will be appropriate. > > But if we add something like slub_nocmpxchg later, it would be slub_nocmpxchg > as it's an implementation-specific feature. Hm but we're going to have only one implementation and I hope that won't change again (the implementation could furter evolve, even with large changes, but not split into separate selection again). So I'd rather use slab_$thing even for parameters that look like implementation specific. >> So what I'd propose is that we change all parameters to accept a >> "slab_$param" as a primary and documented name (and the description can >> contain just [MM] tag, no [SLAB] or [SLUB] needed), with "slub_$param" is >> also accepted as an alias where it exists today, and there's just a note >> that the slub_$param name is also accepted in the description of the >> canonical parameter, not in a separate description. > > No reason not to do it. > >> Then maybe in a few >> years we can mark the old names as deprecated and start issuing low-key >> warnings (while still accepting them), and in 10 years maybe remove them >> completely. Thoughts? > > That might be the safest way to remove a kernel parameter but should > we remove them? > Probably 1) allowing both slub_$param and slab_$param for general > parameters (forever) Well we can certainly try deprecate them in few years, just to avoid cruft. But it's not critical in case that's rejected for some reason. > and 2) only using slub_$param for slub-specific params would be enough? > >> > - >> > slub_debug[=options[,slabs][;[options[,slabs]]...] [MM, SLUB] >> > Enabling slub_debug allows one to determine the >> > culprit if slab objects become corrupted. Enabling >>