lkml.org 
[lkml]   [2024]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v5 15/37] lib: introduce early boot parameter to avoid page_ext memory overhead
From
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@google.com>

Reviewed-by: Vlastimil Babka <vbabka@suse.cz>

\
 
 \ /
  Last update: 2024-03-13 15:35    [W:0.375 / U:0.104 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site