Re: [PATCH v6 00/37] Memory allocation profiling

From: Klara Modin
Date: Fri Apr 05 2024 - 11:38:23 EST




On 2024-04-05 17:20, Suren Baghdasaryan wrote:
On Fri, Apr 5, 2024 at 7:30 AM Klara Modin <klarasmodin@xxxxxxxxx> wrote:

On 2024-04-05 16:14, Suren Baghdasaryan wrote:
On Fri, Apr 5, 2024 at 6:37 AM Klara Modin <klarasmodin@xxxxxxxxx> wrote:
If I enable this, I consistently get percpu allocation failures. I can
occasionally reproduce it in qemu. I've attached the logs and my config,
please let me know if there's anything else that could be relevant.

Thanks for the report!
In debug_alloc_profiling.log I see:

[ 7.445127] percpu: limit reached, disable warning

That's probably the reason. I'll take a closer look at the cause of
that and how we can fix it.

Thanks!

In the build that produced debug_alloc_profiling.log I think we are
consuming all the per-cpu memory reserved for the modules. Could you
please try this change and see if that fixes the issue:

include/linux/percpu.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index a790afba9386..03053de557cf 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -17,7 +17,7 @@
/* enough to cover all DEFINE_PER_CPUs in modules */
#ifdef CONFIG_MODULES
#ifdef CONFIG_MEM_ALLOC_PROFILING
-#define PERCPU_MODULE_RESERVE (8 << 12)
+#define PERCPU_MODULE_RESERVE (8 << 13)
#else
#define PERCPU_MODULE_RESERVE (8 << 10)
#endif


Yeah, that patch fixes the issue for me.

Thanks,
Tested-by: Klara Modin