Re: [LKP] [flow_dissector] d58e468b11: BUG:unable_to_handle_kernel

From: Willem de Bruijn
Date: Sun Sep 30 2018 - 22:58:49 EST


On Sat, Sep 29, 2018 at 11:20 PM kernel test robot
<rong.a.chen@xxxxxxxxx> wrote:
>
> FYI, we noticed the following commit (built with gcc-7):
>
> commit: d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 ("flow_dissector: implements flow dissector BPF hook")
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master
>
> in testcase: test_bpf
> with following parameters:
>
> test: jit
>
>
>
> on test machine: qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -m 2G
>
> caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
>
>
> +------------------------------------------+------------+------------+
> | | 1edb6e035e | d58e468b11 |
> +------------------------------------------+------------+------------+
> | boot_successes | 16 | 0 |
> | boot_failures | 0 | 4 |
> | BUG:unable_to_handle_kernel | 0 | 4 |
> | Oops:#[##] | 0 | 4 |
> | RIP:__skb_flow_dissect | 0 | 4 |
> | Kernel_panic-not_syncing:Fatal_exception | 0 | 4 |
> +------------------------------------------+------------+------------+
>
>
>
> [ 11.372447] BUG: unable to handle kernel paging request at 0000000000001288
> [ 11.375142] PGD 0 P4D 0
> [ 11.375884] Oops: 0000 [#1] SMP PTI
> [ 11.376822] CPU: 1 PID: 446 Comm: modprobe Not tainted 4.19.0-rc2-00341-gd58e468 #1
> [ 11.378646] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
> [ 11.380605] RIP: 0010:__skb_flow_dissect+0x8e/0x1690
> [ 11.381777] Code: 05 f7 d3 79 7e 4d 8d 14 07 41 0f b7 44 24 06 66 89 85 3e ff ff ff 48 85 db 0f 84 12 02 00 00 48 8b 43 10 48 8b 80 e8 04 00 00 <48> 8b 90 88 12 00 00 48 85 d2 0f 84 f7 01 00 00 48 8d 4d 92 31 c0
> [ 11.385799] RSP: 0018:ffffc900008c7a80 EFLAGS: 00010286
> [ 11.387040] RAX: 0000000000000000 RBX: ffff88007e80d600 RCX: 0000000000000000
> [ 11.388612] RDX: ffffc900008c7bb4 RSI: ffffffff828b3cc0 RDI: ffff88007e80d600
> [ 11.390178] RBP: ffffc900008c7b80 R08: 0000000000000000 R09: 000000000000000e
> [ 11.391747] R10: ffffc900008c7bb4 R11: ffff88007ea34c00 R12: ffffffff828b3cc0
> [ 11.393315] R13: 0000000000000008 R14: 000000000000001e R15: ffffc900008c7bb4
> [ 11.394870] FS: 00007f64be17e700(0000) GS:ffff880072900000(0000) knlGS:0000000000000000
> [ 11.396785] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 11.398112] CR2: 0000000000001288 CR3: 000000007ee8e002 CR4: 00000000000606e0
> [ 11.399693] Call Trace:
> [ 11.400425] ? vsnprintf+0xf2/0x4b0
> [ 11.401335] ? up+0x12/0x60
> [ 11.402116] ? _cond_resched+0x19/0x30
> [ 11.403069] ? skb_get_poff+0x4b/0xa0
> [ 11.404010] ? __kmalloc_reserve+0x2e/0x80
> [ 11.405145] skb_get_poff+0x4b/0xa0
> [ 11.406050] bpf_skb_get_pay_offset+0xa/0x10

Thanks for the report. This has most likely been fixed, by commit
100811936f89f ("bpf: test_bpf: add init_net to dev for
flow_dissector")