qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Problems with qemu "modern" virtio on sparc64


From: Guenter Roeck
Subject: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
Date: Fri, 25 Nov 2016 10:11:14 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Hi,

I am using virtio on sparc64 for my Linux kernel runtime tests.

Starting with qemu v2.7, I noticed that the kernel either gets stuck or crashes.
After adding some debug information to the kernel, I found that the problem 
happens
in vp_reset().

Interestingly, when running v4.9-rc6 without modification, the kernel crashes 
on me.
If I add pr_info just before and after the vp_iowrite8() in 
virtio_pci_modern.c:vp_reset(),
the kernel gets stuck in the vp_iowrite8().

Here is the relevant part of the crash:

[    3.151167] Unable to handle kernel NULL pointer dereference
[    3.151809] tsk->{mm,active_mm}->context = 0000000000000000
[    3.152430] tsk->{mm,active_mm}->pgd = fffff80000402000
[    3.153032]               \|/ ____ \|/
[    3.153032]               "@'/ .. \`@"
[    3.153032]               /_| \__/ |_\
[    3.153032]                  \__U_/
[    3.154042] swapper(1): Oops [#1]
[    3.154773] CPU: 0 PID: 1 Comm: swapper Not tainted 4.9.0-rc5+ #4
[    3.155375] task: fffff8001f0af620 task.stack: fffff8001f0b0000
[    3.155958] TSTATE: 0000009980001606 TPC: 00000000006edf44 TNPC: 
00000000006edf48 Y: 00000000    Not tainted
[    3.156901] TPC: <vp_reset+0x4/0x40>

None of the pointers used in vp_reset() is NULL. As mentioned above, adding a 
pr_info
just before vp_iowrite8() makes the crash disappear and the kernel is stuck 
instead.
Here is how it looks like:

[    3.104243] Hi there
[   26.912509] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [swapper:1]
[   26.913102] Modules linked in:
[   26.914061] CPU: 0 PID: 1 Comm: swapper Not tainted 4.9.0-rc5+ #5
[   26.914633] task: fffff8001f0af620 task.stack: fffff8001f0b0000
[   26.915156] TSTATE: 0000004480001605 TPC: 00000000006edf50 TNPC: 
00000000006edf54 Y: 00000412    Not tainted
[   26.915954] TPC: <vp_reset+0x10/0x60>

Another pr_info() after vp_iowrite8() is never printed, suggesting that the 
code never
gets to that point.

The kernel configuration is sparc64_defconfig with the following configuration
options enabled.

CONFIG_DEVTMPFS=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_SCSI_VIRTIO=y

Command line is

qemu-system-sparc64 -M sun4u -cpu "TI UltraSparc IIi" -m 512 \
        -drive file=simple-root-filesystem-sparc.ext3,if=virtio,format=raw \
        -kernel arch/sparc/boot/image -no-reboot \
        -append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
        -nographic -monitor none

Does anyone have an idea what might be wrong ?

Thanks,
Guenter



reply via email to

[Prev in Thread] Current Thread [Next in Thread]