Michal Hocko <mhocko@xxxxxxxx> wrote: > On Mon 26-09-22 10:31:39, Florian Westphal wrote: > > Martin Zaharinov reports BUG() in mm land for 5.19.10 kernel: > > kernel BUG at mm/vmalloc.c:2437! > > invalid opcode: 0000 [#1] SMP > > CPU: 28 PID: 0 Comm: swapper/28 Tainted: G W O 5.19.9 #1 > > [..] > > RIP: 0010:__get_vm_area_node+0x120/0x130 > > __vmalloc_node_range+0x96/0x1e0 > > kvmalloc_node+0x92/0xb0 > > bucket_table_alloc.isra.0+0x47/0x140 > > rhashtable_try_insert+0x3a4/0x440 > > rhashtable_insert_slow+0x1b/0x30 > > [..] > > > > bucket_table_alloc uses kvzalloc(GPF_ATOMIC). If kmalloc fails, this now > > falls through to vmalloc and hits code paths that assume GFP_KERNEL. > > > > I sent a patch to restore GFP_ATOMIC support in kvmalloc but mm > > maintainers rejected it. > > > > This patch is partial revert of > > commit 93f976b5190d ("lib/rhashtable: simplify bucket_table_alloc()"), > > to avoid kvmalloc for ATOMIC case. > > > > As kvmalloc doesn't warn when used with ATOMIC, kernel will only crash > > once vmalloc fallback occurs, so we may see more crashes in other areas > > in the future. > > > > Most other callers seem ok but kvm_mmu_topup_memory_cache looks like it > > might be affected by the same breakage, so Cc kvm@. > > > > Reported-by: Martin Zaharinov <micron10@xxxxxxxxx> > > Fixes: a421ef303008 ("mm: allow !GFP_KERNEL allocations for kvmalloc") > > Link: https://lore.kernel.org/linux-mm/Yy3MS2uhSgjF47dy@pc636/T/#t > > Cc: Michal Hocko <mhocko@xxxxxxxx> > > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > > Cc: kvm@xxxxxxxxxxxxxxx > > Signed-off-by: Florian Westphal <fw@xxxxxxxxx> > > Please continue in the original email thread until we sort out the most > reasonable solution for this. I've submitted a v2 using Michals proposed fix for kvmalloc api, if thats merged no fixes are required in the callers, so this rhashtable patch can be discarded.