Martin Zaharinov <micron10@xxxxxxxxx> wrote: > This is bug report for flowtable and kernel 5.19.9 > > simple config nat + flowtable CC mm experts. I'm not sure that this is a bug in netfilter/rhashtable, looks like mm problem perhaps? I am a bit confused wrt. kvzalloc+GFP_ATOMIC. This looks like following is happening: 5.19.9 kernel BUGs with: > Sep 22 07:43:49 [460691.305266][ C28] kernel BUG at mm/vmalloc.c:2437! [ BUG_ON(in_interrupt ] > Sep 22 07:43:50 [460692.031617][ C28] Call Trace: > Sep 22 07:43:50 [460692.064498][ C28] <IRQ> > Sep 22 07:43:50 [460692.096177][ C28] __vmalloc_node_range+0x96/0x1e0 > Sep 22 07:43:50 [460692.128014][ C28] ? bucket_table_alloc.isra.0+0x47/0x140 > Sep 22 07:43:50 [460692.160134][ C28] kvmalloc_node+0x92/0xb0 > Sep 22 07:43:50 [460692.191885][ C28] ? bucket_table_alloc.isra.0+0x47/0x140 > Sep 22 07:43:50 [460692.224234][ C28] bucket_table_alloc.isra.0+0x47/0x140 > Sep 22 07:43:50 [460692.256840][ C28] rhashtable_try_insert+0x3a4/0x440 [ rest irrelevant ] AFAICS this is caused by kvzalloc(GFP_ATOMIC) which somehow ends up in GFP_KERNEL-only territory? Looking at recent history I see commit a421ef303008b0ceee2cfc625c3246fa7654b0ca Author: Michal Hocko <mhocko@xxxxxxxx> Date: Fri Jan 14 14:07:07 2022 -0800 mm: allow !GFP_KERNEL allocations for kvmalloc before this, GFP_ATOMIC made sure we stay with plain kmalloc, but now it appears that we can end up in places where GFP_ATOMIC isn't allowed? Original bug report is here: https://lore.kernel.org/netdev/09BE0B8A-3ADF-458E-B75E-931B74996355@xxxxxxxxx/T/#u