본문 바로가기

Kernel Crash Case-Studies/커널 크래시 트러블슈팅

[syzbot] Tons of crash issue with vmlinux and kernel log ([riscv] kernel panic)

[syzbot] Tons of crash issue with vmlinux and kernel log ([riscv] kernel panic)

Some of my friends asked me about how to find kernel crash signatures with kernel log.
Because they would like to improve troubleshooting ability as Linux system software engineer. If you are eager to know about the pattern of __kernel crash__ signature, you can visit the following links:  

1) syzbot weblink:

The following link contains a tons of crash issues reproduced by syzbot.

https://syzkaller.appspot.com/x/log.txt?x=16d5ffd6e80000

You can download many vmlinux image with kernel log in each issue.

2) crash issues detected by syzbot

You can find a collection of crash issues detected by syzbot in the following link.

https://syzkaller.appspot.com/upstream/graph/crashes

Each issue contains the kernel log, kernel config, vmlinux and image, which are provided in the real project.

3) example of crash issue

The following link provides a lot of signatures associated with crash issue.

https://syzkaller.appspot.com/x/log.txt?x=16d5ffd6e80000

Since the above crash occurs in the riscv machine, it shows us the a set of register
at the moment of crash.

[ 3216.496615][ T5612] Hardware name: riscv-virtio,qemu (DT)
[ 3216.498182][ T5612] Workqueue: usb_hub_wq hub_event
[ 3216.503420][ T5612] epc : mark_lock+0x32/0xdb0
[ 3216.506124][ T5612]  ra : __lock_acquire+0xd3e/0x310a
[ 3216.508025][ T5612] epc : ffffffff80158472 ra : ffffffff8015a3b2 sp : ff20000002077f10
[ 3216.509709][ T5612]  gp : ffffffff861f60a0 tp : 0000000000000000 t0 : ff20000002078aa0
[ 3216.511485][ T5612]  t1 : ffe3ffff0040f028 t2 : ffffffff81760c62 s0 : ff200000020780b0
[ 3216.513050][ T5612]  s1 : 0000000000000002 a0 : ff60000008bd0000 a1 : ff60000008bd0bf8
[ 3216.514584][ T5612]  a2 : 0000000000000002 a3 : 0000000041b58ab3 a4 : 0000000000030000
[ 3216.516549][ T5612]  a5 : ffffffffe0000000 a6 : 0000000000000000 a7 : ffffffff8052179e
[ 3216.518277][ T5612]  s2 : ff60000008bd0bf8 s3 : ff20000002078040 s4 : ffffffff86263b60
[ 3216.519748][ T5612]  s5 : 0000000000000000 s6 : 0000000000000000 s7 : 0000000000000001
[ 3216.521324][ T5612]  s8 : 0000000000000000 s9 : 0000000000048019 s10: ffffffff86263b60
[ 3216.523355][ T5612]  s11: ff60000008bd0a9c t3 : ff20000002078140 t4 : ffffffff80159674
[ 3216.524892][ T5612]  t5 : 1fe400000040f028 t6 : ff6000000f44c1b8

Another signature that interested me most is that CSRs registers are includes in the same link: The following register indicates that exception occurs at ffffffff80158472 indicated by sepc

CPU#1
 V      =   0
 pc       ffffffff836e1ce8
[...]
 mtvec    0000000080000408
 stvec    ffffffff83745b2c
 vstvec   0000000000000000
 mepc     ffffffff805979cc
 sepc     ffffffff80158472 //<<--

BR,
Austin Kim