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 > > > > > In qemu-alloc3.log I see couple of warnings: > > > > [ 1.111620] alloc_tag was not set > > [ 1.111880] WARNING: CPU: 0 PID: 164 at > > include/linux/alloc_tag.h:118 kfree (./include/linux/alloc_tag.h:118 > > (discriminator 1) ./include/linux/alloc_tag.h:161 (discriminator 1) > > mm/slub.c:2043 ... > > > > [ 1.161710] alloc_tag was not cleared (got tag for fs/squashfs/cache.c:413) > > [ 1.162289] WARNING: CPU: 0 PID: 195 at > > include/linux/alloc_tag.h:109 kmalloc_trace_noprof > > (./include/linux/alloc_tag.h:109 (discriminator 1) > > ./include/linux/alloc_tag.h:149 (discriminator 1) ... > > > > Which means we missed to instrument some allocation. Can you please > > check if disabling CONFIG_MEM_ALLOC_PROFILING_DEBUG fixes QEMU case? > > In the meantime I'll try to reproduce and fix this. > > Thanks, > > Suren. > > That does seem to be the case from what I can tell. I didn't get the > warning in qemu consistently, but it hasn't reappeared for a number of > times at least with the debugging option off. > > Regards, > Klara Modin