Re: Bug Report Flowtable NFT with kernel 5.19.9
From: Florian Westphal <fw@strlen.de>
Date: 2022-09-22 12:13:02
Also in:
linux-mm, netfilter-devel
Martin Zaharinov [off-list ref] 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 [off-list ref]
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@gmail.com/T/#u (local)