Bibek,
On Thu, Aug 10, 2023 at 09:54:51AM -0700, Andrew Morton wrote:
On Wed, 9 Aug 2023 18:46:40 +0530 Bibek Kumar Patro <quic_bibekkum@xxxxxxxxxxx> wrote:
Currently enabling CONFIG_CMA_DEBUG enables DEBUG preprocessor macro.
If DEBUG is defined, it's equivalent to a printk with KERN_DEBUG loglevel
flooding the dmesg buffer with pr_debug prints from mm/cma driver and from
included files as well. This results in excessive amount of CMA logging and
also might distract the debug teams with unrelated KERN_DEBUG prints.One of
the ways engineers currently tackle this problem is by passing loglevel=N
though commandline to suppress KERN_DEBUG messages. This approach can
sometimes become tiresome due to its repetitive nature.
This patch proposes an alternative approach by introducing a simple new
config CONFIG_CMA_ALLOC_DEBUG which only shows the cma bit allocation
status in case of cma failure and do not enable DEBUG preprocessor macro
from CONFIG_CMA_DEBUG avoiding excessive CMA logging from pr_debug.
Engineers and tech teams seeking only for bitmap status in case of cma
failure can use this simple config instead of worrying about changing
the loglevel or trying other similar workarounds.
Would it be better to control this at runtime? With a /proc or /sys tunable?
IIUC, Andrew is asking/suggesting that would a runtime knob be useful
here?
For ex:
/proc/sys/vm/cma_dump_on_failure : This needs to be registerd in the
cma.c . grep for "register_sysctl_init" in mm code. We can set this to
true by default in case CMA_DEBUG is enabled so that current users are
not affected.
/sys/kernel/mm/cma/bitmap_dump_on_failure : This needs to stay in
cma_sysfs.c code
Thanks,
Pavan