Re: [PATCH v4] ata: libata-eh: Honor all EH scheduling requests

From: kernel test robot
Date: Thu Sep 07 2023 - 14:00:58 EST




Hello,

kernel test robot noticed "kernel_BUG_at_drivers/ata/libata-sff.c" on:

commit: d3d099d5c2dd38db84abd96df39f9f0828c16b7b ("[PATCH v4] ata: libata-eh: Honor all EH scheduling requests")
url: https://github.com/intel-lab-lkp/linux/commits/linan666-huaweicloud-com/ata-libata-eh-Honor-all-EH-scheduling-requests/20230906-164907
base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git 65d6e954e37872fd9afb5ef3fc0481bb3c2f20f4
patch link: https://lore.kernel.org/all/20230906084212.1016634-1-linan666@xxxxxxxxxxxxxxx/
patch subject: [PATCH v4] ata: libata-eh: Honor all EH scheduling requests

in testcase: boot

compiler: gcc-12
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

(please refer to attached dmesg/kmsg for entire log/backtrace)


+------------------------------------------+------------+------------+
| | 65d6e954e3 | d3d099d5c2 |
+------------------------------------------+------------+------------+
| boot_successes | 8 | 0 |
| boot_failures | 0 | 4 |
| kernel_BUG_at_drivers/ata/libata-sff.c | 0 | 4 |
| invalid_opcode:#[##] | 0 | 4 |
| RIP:ata_sff_pio_task[libata] | 0 | 4 |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 4 |
+------------------------------------------+------------+------------+


If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202309071557.3a90e7a8-oliver.sang@xxxxxxxxx


[ 29.974031][ T8] ------------[ cut here ]------------
[ 29.974432][ T8] kernel BUG at drivers/ata/libata-sff.c:1220!
[ 29.974866][ T8] invalid opcode: 0000 [#1] SMP PTI
[ 29.975228][ T8] CPU: 0 PID: 8 Comm: kworker/0:0 Not tainted 6.5.0-11939-gd3d099d5c2dd #1
[ 29.975817][ T8] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 29.976529][ T8] Workqueue: ata_sff ata_sff_pio_task [libata]
[ 29.977003][ T8] RIP: 0010:ata_sff_pio_task (drivers/ata/libata-sff.c:1220 (discriminator 1)) libata
[ 29.977518][ T8] Code: 35 a6 0d 01 00 48 8d 90 b8 00 00 00 e8 da a6 fb f4 e9 cc fe ff ff 84 c0 0f 89 e7 fe ff ff e9 4b ff ff ff 0f 0b e9 1c ff ff ff <0f> 0b 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00
All code
========
0: 35 a6 0d 01 00 xor $0x10da6,%eax
5: 48 8d 90 b8 00 00 00 lea 0xb8(%rax),%rdx
c: e8 da a6 fb f4 callq 0xfffffffff4fba6eb
11: e9 cc fe ff ff jmpq 0xfffffffffffffee2
16: 84 c0 test %al,%al
18: 0f 89 e7 fe ff ff jns 0xffffffffffffff05
1e: e9 4b ff ff ff jmpq 0xffffffffffffff6e
23: 0f 0b ud2
25: e9 1c ff ff ff jmpq 0xffffffffffffff46
2a:* 0f 0b ud2 <-- trapping instruction
2c: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
33: 00 00 00 00
37: 66 data16
38: 66 data16
39: 2e cs
3a: 0f .byte 0xf
3b: 1f (bad)
3c: 84 00 test %al,(%rax)
...

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
9: 00 00 00 00
d: 66 data16
e: 66 data16
f: 2e cs
10: 0f .byte 0xf
11: 1f (bad)
12: 84 00 test %al,(%rax)
...
[ 29.978931][ T8] RSP: 0018:ffffb84cc004be40 EFLAGS: 00010046
[ 29.979363][ T8] RAX: 0000000000000000 RBX: ffff88a1d49180b8 RCX: ffff88a4efc2d5e8
[ 29.979906][ T8] RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffff88a1fa6299c0
[ 29.980449][ T8] RBP: ffff88a1d49180b8 R08: ff6565725e607360 R09: ffff88a4ea0e32c0
[ 29.980994][ T8] R10: 0000000000000008 R11: fefefefefefefeff R12: ffff88a4ea592200
[ 29.981559][ T8] R13: 0000000000000000 R14: ffff88a4ea592205 R15: ffff88a1d49180c0
[ 29.982108][ T8] FS: 0000000000000000(0000) GS:ffff88a4efc00000(0000) knlGS:0000000000000000
[ 29.982720][ T8] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 29.983173][ T8] CR2: 00007f1549cb1028 CR3: 000000011465a000 CR4: 00000000000406f0
[ 29.983726][ T8] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 29.984856][ T8] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 29.986008][ T8] Call Trace:
[ 29.987041][ T8] <TASK>
[ 29.987799][ T8] ? die (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:434 arch/x86/kernel/dumpstack.c:447)
[ 29.988599][ T8] ? do_trap (arch/x86/kernel/traps.c:112 arch/x86/kernel/traps.c:153)
[ 29.989418][ T8] ? ata_sff_pio_task (drivers/ata/libata-sff.c:1220 (discriminator 1)) libata
[ 29.990388][ T8] ? do_error_trap (arch/x86/include/asm/traps.h:59 arch/x86/kernel/traps.c:174)
[ 29.991210][ T8] ? ata_sff_pio_task (drivers/ata/libata-sff.c:1220 (discriminator 1)) libata
[ 29.992148][ T8] ? exc_invalid_op (arch/x86/kernel/traps.c:265)
[ 29.992972][ T8] ? ata_sff_pio_task (drivers/ata/libata-sff.c:1220 (discriminator 1)) libata
[ 29.993919][ T8] ? asm_exc_invalid_op (arch/x86/include/asm/idtentry.h:568)
[ 29.994748][ T8] ? ata_sff_pio_task (drivers/ata/libata-sff.c:1220 (discriminator 1)) libata
[ 29.995668][ T8] process_one_work (kernel/workqueue.c:2635)
[ 29.996515][ T8] worker_thread (kernel/workqueue.c:2697 kernel/workqueue.c:2784)
[ 29.997328][ T8] ? __pfx_worker_thread (kernel/workqueue.c:2730)
[ 29.998163][ T8] kthread (kernel/kthread.c:388)
[ 29.998902][ T8] ? __pfx_kthread (kernel/kthread.c:341)
[ 29.999685][ T8] ret_from_fork (arch/x86/kernel/process.c:153)
[ 30.000452][ T8] ? __pfx_kthread (kernel/kthread.c:341)
[ 30.001228][ T8] ret_from_fork_asm (arch/x86/entry/entry_64.S:312)
[ 30.002045][ T8] </TASK>
[ 30.002705][ T8] Modules linked in: intel_rapl_msr sr_mod intel_rapl_common crct10dif_pclmul crc32_pclmul crc32c_intel cdrom bochs ghash_clmulni_intel drm_vram_helper drm_kms_helper drm_ttm_helper sha512_ssse3 ttm ata_generic rapl ppdev drm ata_piix joydev serio_raw libata i2c_piix4 parport_pc parport
[ 30.005504][ T8] ---[ end trace 0000000000000000 ]---
[ 30.006390][ T8] RIP: 0010:ata_sff_pio_task (drivers/ata/libata-sff.c:1220 (discriminator 1)) libata
[ 30.007379][ T8] Code: 35 a6 0d 01 00 48 8d 90 b8 00 00 00 e8 da a6 fb f4 e9 cc fe ff ff 84 c0 0f 89 e7 fe ff ff e9 4b ff ff ff 0f 0b e9 1c ff ff ff <0f> 0b 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 2e 0f 1f 84 00 00 00
All code
========
0: 35 a6 0d 01 00 xor $0x10da6,%eax
5: 48 8d 90 b8 00 00 00 lea 0xb8(%rax),%rdx
c: e8 da a6 fb f4 callq 0xfffffffff4fba6eb
11: e9 cc fe ff ff jmpq 0xfffffffffffffee2
16: 84 c0 test %al,%al
18: 0f 89 e7 fe ff ff jns 0xffffffffffffff05
1e: e9 4b ff ff ff jmpq 0xffffffffffffff6e
23: 0f 0b ud2
25: e9 1c ff ff ff jmpq 0xffffffffffffff46
2a:* 0f 0b ud2 <-- trapping instruction
2c: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
33: 00 00 00 00
37: 66 data16
38: 66 data16
39: 2e cs
3a: 0f .byte 0xf
3b: 1f (bad)
3c: 84 00 test %al,(%rax)
...

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
9: 00 00 00 00
d: 66 data16
e: 66 data16
f: 2e cs
10: 0f .byte 0xf
11: 1f (bad)
12: 84 00 test %al,(%rax)


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20230907/202309071557.3a90e7a8-oliver.sang@xxxxxxxxx



--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki