On Tue, Nov 13, 2018 at 10:03:38PM +0530, Naresh Kamboju wrote: > While running kernel selftests bpf test_cgroup_storage test this > kernel BUG reported every time on all devices running Linux -next > 4.20.0-rc2-next-20181113 (from 4.19.0-rc5-next-20180928). > This kernel BUG log is from x86_64 machine. > > Do you see at your end ? > > [ 73.047526] BUG: sleeping function called from invalid context at > /srv/oe/build/tmp-rpb-glibc/work-shared/intel-corei7-64/kernel-source/mm/slab.h:421 > [ 73.060915] in_atomic(): 1, irqs_disabled(): 0, pid: 3157, name: > test_cgroup_sto > [ 73.068342] INFO: lockdep is turned off. > [ 73.072293] CPU: 2 PID: 3157 Comm: test_cgroup_sto Not tainted > 4.20.0-rc2-next-20181113 #1 > [ 73.080548] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS > 2.0b 07/27/2017 > [ 73.088018] Call Trace: > [ 73.090463] dump_stack+0x70/0xa5 > [ 73.093783] ___might_sleep+0x152/0x240 > [ 73.097619] __might_sleep+0x4a/0x80 > [ 73.101191] __kmalloc_node+0x1cf/0x2f0 > [ 73.105031] ? cgroup_storage_update_elem+0x46/0x90 > [ 73.109909] cgroup_storage_update_elem+0x46/0x90 > [ 73.114608] map_update_elem+0x4a1/0x4c0 > [ 73.118534] __x64_sys_bpf+0x124/0x280 > [ 73.122286] do_syscall_64+0x4f/0x190 > [ 73.125952] entry_SYSCALL_64_after_hwframe+0x49/0xbe > [ 73.131004] RIP: 0033:0x7f46b93ea7f9 > [ 73.134581] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 > 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 > 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 4f e6 2b 00 f7 d8 64 89 > 01 48 > [ 73.153318] RSP: 002b:00007fffc6595858 EFLAGS: 00000206 ORIG_RAX: > 0000000000000141 > [ 73.160876] RAX: ffffffffffffffda RBX: 00000000014a0260 RCX: > 00007f46b93ea7f9 > [ 73.167999] RDX: 0000000000000048 RSI: 00007fffc65958a0 RDI: > 0000000000000002 > [ 73.175124] RBP: 00007fffc6595870 R08: 00007fffc65958a0 R09: > 00007fffc65958a0 > [ 73.182246] R10: 00007fffc65958a0 R11: 0000000000000206 R12: > 0000000000000003 > [ 73.189369] R13: 0000000000000004 R14: 0000000000000005 R15: > 0000000000000006 > selftests: bpf: test_cgroup_storage
Hi Naresh! Thank you for the report! Can you, please, try the following patch? Thanks! -- diff --git a/kernel/bpf/local_storage.c b/kernel/bpf/local_storage.c index c97a8f968638..d91710fb8360 100644 --- a/kernel/bpf/local_storage.c +++ b/kernel/bpf/local_storage.c @@ -139,8 +139,8 @@ static int cgroup_storage_update_elem(struct bpf_map *map, void *_key, return -ENOENT; new = kmalloc_node(sizeof(struct bpf_storage_buffer) + - map->value_size, __GFP_ZERO | GFP_USER, - map->numa_node); + map->value_size, __GFP_ZERO | GFP_ATOMIC | + __GFP_NOWARN, map->numa_node); if (!new) return -ENOMEM;