Re: [PATCH v5 15/37] lib: introduce early boot parameter to avoid page_ext memory overhead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/6/24 19:24, Suren Baghdasaryan wrote:
> The highest memory overhead from memory allocation profiling comes from
> page_ext objects. This overhead exists even if the feature is disabled
> but compiled-in. To avoid it, introduce an early boot parameter that
> prevents page_ext object creation. The new boot parameter is a tri-state
> with possible values of 0|1|never. When it is set to "never" the
> memory allocation profiling support is disabled, and overhead is minimized
> (currently no page_ext objects are allocated, in the future more overhead
> might be eliminated). As a result we also lose ability to enable memory
> allocation profiling at runtime (because there is no space to store
> alloctag references). Runtime sysctrl becomes read-only if the early boot
> parameter was set to "never". Note that the default value of this boot
> parameter depends on the CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT
> configuration. When CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT=n
> the boot parameter is set to "never", therefore eliminating any overhead.
> CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT=y results in boot parameter
> being set to 1 (enabled). This allows distributions to avoid any overhead
> by setting CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT=n config and
> with no changes to the kernel command line.
> We reuse sysctl.vm.mem_profiling boot parameter name in order to avoid
> introducing yet another control. This change turns it into a tri-state
> early boot parameter.
> 
> Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx>

Reviewed-by: Vlastimil Babka <vbabka@xxxxxxx>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux