Re: [PATCH v2] cma: introduce CMA_ALLOC_DEBUG config

From: Bibek Kumar Patro
Date: Fri Aug 11 2023 - 02:54:59 EST




On 8/10/2023 10:24 PM, 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?

Currently it's being controlled at runtime by changing the /proc/sys/kernel/printk tunable or through loglevel value in cmdline but issue faced by engineers in both these approach is these tunable value would reset every time on reboot and won't retain the set value. So these approaches are being used as workarounds only as of now.
Also another issue with the earlier CMA_DEBUG config is the text code size might increase (It might be minuscule sometimes but will happen) due to all pr_debug in the code.