Re: kernel BUG at /usr/src/kernel/lib/dynamic_debug.c:267!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 09, 2020 at 10:00:25AM +0200, Petr Mladek wrote:
> On Wed 2020-09-09 14:47:45, Masami Hiramatsu wrote:
> > Hi Naresh,
> > 
> > Thanks for reporting, it seems that you have run the kselftests/livepatch/test-livepatch.sh.
> > Then, I think it is better to report to Livepatch maintainers too. (I Cc'd them)
> > 
> > Thank you,
> > 
> > On Wed, 9 Sep 2020 10:24:09 +0530
> > Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
> > 
> > > While testing livepatch test cases on x86_64 with Linux next 20200908 tag kernel
> > > this kernel BUG noticed several times.
> > > 
> > > metadata:
> > >   git branch: master
> > >   git repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> > >   git commit: dff9f829e5b0181d4ed9d35aa62d695292399b54
> > >   git describe: next-20200908
> > >     kernel-config:
> > > http://snapshots.linaro.org/openembedded/lkft/lkft/sumo/intel-corei7-64/lkft/linux-next/853/config
> > > 
> > > kernel BUG log,
> > > ----------------------
> > > [  634.063970] % rmmod test_klp_livepatch
> > > [  634.114787] test_klp_atomic_replace: this has been live patched
> > > [  634.121953] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
> > > [  634.129391] livepatch: 'test_klp_atomic_replace': starting
> > > unpatching transition
> > > [  634.143990] livepatch: 'test_klp_atomic_replace': unpatching complete
> > > [  634.156223] % rmmod test_klp_atomic_replace
> > > [  634.235451] ------------[ cut here ]------------
> > > [  634.240314] kernel BUG at /usr/src/kernel/lib/dynamic_debug.c:267!
> > > [  634.246584] invalid opcode: 0000 [#1] SMP PTI
> > > [  634.250955] CPU: 0 PID: 12791 Comm: test-livepatch. Tainted: G
> > >   W     K   5.9.0-rc4-next-20200908 #1
> > > [  634.260615] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS
> > > 2.2 05/23/2018
> > > [  634.268007] RIP: 0010:ddebug_exec_query+0x77b/0xb90
> > > [  634.272886] Code: 4c 89 ad 70 ff ff ff e9 db fb ff ff b8 03 00 00
> > > 00 e9 20 fb ff ff b8 02 00 00 00 e9 16 fb ff ff b8 01 00 00 00 e9 0c
> > > fb ff ff <0f> 0b 31 c0 e9 03 fb ff ff 49 89 f4 48 89 f7 e9 78 f9 ff ff
> > > 8b 15
> > > [  634.291630] RSP: 0018:ffff9f0c80a5bd18 EFLAGS: 00010246
> > > [  634.296856] RAX: 000000000000003d RBX: 0000000000000000 RCX: 0000000000000000
> > > [  634.303987] RDX: 000000000000003d RSI: 0000000000000000 RDI: ffff90db906583ec
> > > [  634.311111] RBP: ffff9f0c80a5bde8 R08: 000000000000000a R09: 000000000000003b
> > > [  634.318236] R10: ffff90db92610000 R11: 0000000000000246 R12: ffff90db906583ec
> > > [  634.325368] R13: ffffffffbe87cbc0 R14: 0000000000000000 R15: 0000000000000004
> > > [  634.332500] FS:  00007fd37249a740(0000) GS:ffff90dbefa00000(0000)
> > > knlGS:0000000000000000
> > > [  634.340578] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > [  634.346315] CR2: 0000000000e6d00c CR3: 000000026a4b8004 CR4: 00000000003706f0
> > > [  634.353446] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > > [  634.360570] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > > [  634.367693] Call Trace:
> > > [  634.370139]  ? lock_acquire+0xa6/0x390
> > > [  634.373892]  ? __might_fault+0x34/0x80
> > > [  634.377648]  ddebug_exec_queries+0x6e/0x140
> > > [  634.381831]  ddebug_proc_write+0x4b/0xa0
> > > [  634.385756]  full_proxy_write+0x5f/0x90
> > > [  634.389595]  vfs_write+0xed/0x240
> > > [  634.392915]  ksys_write+0xad/0xf0
> > > [  634.396233]  ? syscall_trace_enter+0x17a/0x240
> > > [  634.400670]  __x64_sys_write+0x1a/0x20
> > > [  634.404416]  do_syscall_64+0x37/0x50
> > > [  634.407993]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
> > > [  634.413038] RIP: 0033:0x7fd371b84144
> > > [  634.416617] Code: 89 02 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00
> > > 00 00 00 00 66 90 48 8d 05 c1 e7 2c 00 8b 00 85 c0 75 13 b8 01 00 00
> > > 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 41 54 49 89 d4 55 48 89
> > > f5 53
> > > [  634.435362] RSP: 002b:00007ffd19447658 EFLAGS: 00000246 ORIG_RAX:
> > > 0000000000000001
> > > [  634.442928] RAX: ffffffffffffffda RBX: 00000000000000bc RCX: 00007fd371b84144
> > > [  634.450059] RDX: 00000000000000bc RSI: 0000000000e6cf70 RDI: 0000000000000001
> > > [  634.457181] RBP: 0000000000e6cf70 R08: 00000000000000e9 R09: 0000000000000000
> > > [  634.464305] R10: 00007ffd19447c48 R11: 0000000000000246 R12: 00007fd371e4e760
> > > [  634.471429] R13: 00000000000000bc R14: 00007fd371e49760 R15: 00000000000000bc
> > > [  634.478559] Modules linked in: trace_printk sch_fq 8021q
> > > iptable_filter xt_mark ip_tables cls_bpf sch_ingress veth algif_hash
> > > x86_pkg_temp_thermal fuse [last unloaded: test_klp_atomic_replace]
> > > [  634.495695] ---[ end trace d04d7e11bd1458bf ]---
> > > [  634.500333] RIP: 0010:ddebug_exec_query+0x77b/0xb90
> > > [  634.505218] Code: 4c 89 ad 70 ff ff ff e9 db fb ff ff b8 03 00 00
> > > 00 e9 20 fb ff ff b8 02 00 00 00 e9 16 fb ff ff b8 01 00 00 00 e9 0c
> > > fb ff ff <0f> 0b 31 c0 e9 03 fb ff ff 49 89 f4 48 89 f7 e9 78 f9 ff ff
> > > 8b 15
> > > [  634.523969] RSP: 0018:ffff9f0c80a5bd18 EFLAGS: 00010246
> > > [  634.529197] RAX: 000000000000003d RBX: 0000000000000000 RCX: 0000000000000000
> > > [  634.536330] RDX: 000000000000003d RSI: 0000000000000000 RDI: ffff90db906583ec
> > > [  634.543462] RBP: ffff9f0c80a5bde8 R08: 000000000000000a R09: 000000000000003b
> > > [  634.550593] R10: ffff90db92610000 R11: 0000000000000246 R12: ffff90db906583ec
> > > [  634.557727] R13: ffffffffbe87cbc0 R14: 0000000000000000 R15: 0000000000000004
> > > [  634.564869] FS:  00007fd37249a740(0000) GS:ffff90dbefa00000(0000)
> > > knlGS:0000000000000000
> > > [  634.572953] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > [  634.578699] CR2: 0000000000e6d00c CR3: 000000026a4b8004 CR4: 00000000003706f0
> > > [  634.585829] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > > [  634.592964] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> 
> It is caused by the commit 42f07816ac0cc79792811 ("dyndbg:
> fix problem parsing format="foo bar"). It modified the condition
> when the above BUG() gets triggered.
> 
> It has even been reported by the kernel test robot, see
> https://lore.kernel.org/lkml/20200902074124.GP4299@shao2-debian/
> 
> 
> It is triggered when the livepatching selftest is trying to restore the
> original setting of dynamic debug messages in the livepatch framework.
> 
> It can get reliably reproduced by the following call:
> 
> $> echo -n 'file kernel/livepatch/transition.c line 586 =_' > \
>    /sys/kernel/debug/dynamic_debug/control
> 
> 
> Adding people from the problematic patch into CC.
> 
> I haven't dived into the dynamic debug code yet. The logic might
> be wrong.
> 
> Anyway, the BUG_ON() should get replaced by a normal error message.
> There is no reason to panic() when a string can't be parsed !!!

The above mentioned patch was trying to fix things so that the BUG_ON()
would not be hit, I guess that's not really happening here :(

Jim, can you look into this?

thanks,

greg k-h



[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux