Messages in this thread | | | Date | Wed, 9 Aug 2023 19:27:52 +0530 | Subject | Re: [PATCH v2] cma: introduce CMA_ALLOC_DEBUG config | From | Bibek Kumar Patro <> |
| |
v2 was added by mistake. It's first submission of the patch. Please ignore the v2.
regards, Bibek
On 8/9/2023 6:46 PM, Bibek Kumar Patro 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. > > Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com> > --- > mm/Kconfig | 11 +++++++++++ > mm/cma.c | 2 +- > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/mm/Kconfig b/mm/Kconfig > index 09130434e30d..ad2a20576a65 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -891,12 +891,23 @@ config CMA > config CMA_DEBUG > bool "CMA debug messages (DEVELOPMENT)" > depends on DEBUG_KERNEL && CMA > + select CMA_ALLOC_DEBUG > help > Turns on debug messages in CMA. This produces KERN_DEBUG > messages for every CMA call as well as various messages while > processing calls such as dma_alloc_from_contiguous(). > This option does not affect warning and error messages. > > +config CMA_ALLOC_DEBUG > + bool "CMA bitmap status upon failure" > + depends on CMA > + help > + Turns on bitmap dump in case of cma failures. This prints > + current status of CMA bit upon failures and will appear > + when cma_alloc() return no_warn argument as false and won't > + flood the dmesg buffer with unrelated KERN_DEBUG prints. No > + need to explicitly enable this if CMA_DEBUG is enabled. > + > config CMA_DEBUGFS > bool "CMA debugfs interface" > depends on CMA && DEBUG_FS > diff --git a/mm/cma.c b/mm/cma.c > index a4cfe995e11e..0ead392769b3 100644 > --- a/mm/cma.c > +++ b/mm/cma.c > @@ -383,7 +383,7 @@ int __init cma_declare_contiguous_nid(phys_addr_t base, > return ret; > } > > -#ifdef CONFIG_CMA_DEBUG > +#ifdef CONFIG_CMA_ALLOC_DEBUG > static void cma_debug_show_areas(struct cma *cma) > { > unsigned long next_zero_bit, next_set_bit, nr_zero; > -- > 2.17.1 >
| |