qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Problems with qemu "modern" virtio on sparc64
@ 2016-11-25 18:11 Guenter Roeck
  2016-12-30 18:18 ` Mark Cave-Ayland
  0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2016-11-25 18:11 UTC (permalink / raw)
  To: qemu-devel@nongnu.org >> QEMU Developers; +Cc: Michael S. Tsirkin

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2016-11-25 18:11 [Qemu-devel] Problems with qemu "modern" virtio on sparc64 Guenter Roeck
@ 2016-12-30 18:18 ` Mark Cave-Ayland
  2016-12-30 19:57   ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Mark Cave-Ayland @ 2016-12-30 18:18 UTC (permalink / raw)
  To: Guenter Roeck, qemu-devel@nongnu.org >> QEMU Developers
  Cc: Michael S. Tsirkin

On 25/11/16 18:11, Guenter Roeck wrote:

> 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

Hi Guenter,

Have you been able to investigate this issue any further? Does the 2.8
release solve the issue for you?


ATB,

Mark.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2016-12-30 18:18 ` Mark Cave-Ayland
@ 2016-12-30 19:57   ` Guenter Roeck
  2017-01-06 17:04     ` Mark Cave-Ayland
  0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2016-12-30 19:57 UTC (permalink / raw)
  To: Mark Cave-Ayland, qemu-devel@nongnu.org >> QEMU Developers
  Cc: Michael S. Tsirkin

On 12/30/2016 10:18 AM, Mark Cave-Ayland wrote:
> On 25/11/16 18:11, Guenter Roeck wrote:
>
>> 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
>
> Hi Guenter,
>
> Have you been able to investigate this issue any further? Does the 2.8
> release solve the issue for you?
>

I did not make any progress, and reverted to qemu v2.6.

Problem is still seen with v2.8 (release); it crashes. The recent virtio
related patch does not make a difference. v2.7.1 also still crashes.
Only difference with both versions is the crash traceback.

Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2016-12-30 19:57   ` Guenter Roeck
@ 2017-01-06 17:04     ` Mark Cave-Ayland
  2017-01-06 18:34       ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Mark Cave-Ayland @ 2017-01-06 17:04 UTC (permalink / raw)
  To: Guenter Roeck, qemu-devel@nongnu.org >> QEMU Developers
  Cc: Michael S. Tsirkin

On 30/12/16 19:57, Guenter Roeck wrote:

> On 12/30/2016 10:18 AM, Mark Cave-Ayland wrote:
>> On 25/11/16 18:11, Guenter Roeck wrote:
>>
>>> 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
>>
>> Hi Guenter,
>>
>> Have you been able to investigate this issue any further? Does the 2.8
>> release solve the issue for you?
>>
> 
> I did not make any progress, and reverted to qemu v2.6.
> 
> Problem is still seen with v2.8 (release); it crashes. The recent virtio
> related patch does not make a difference. v2.7.1 also still crashes.
> Only difference with both versions is the crash traceback.

I can recreate a similar crash here, and it seems to be caused by using
virtio with legacy mode disabled (note that I'm testing a virtio patch
for OpenBIOS which explains the different command line):

$ ./qemu-system-sparc64 \
-drive
file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
-device virtio-blk-pci,drive=cd \
-nographic \
-bios openbios-builtin.elf.nostrip \
-m 256

[    0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 3.10.24 1999/01/01 01:01'
[    0.000000] PROMLIB: Root node compatible: sun4u
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.3.0-1-sparc64
(debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-10) )
#1 Debian 4.3.3-2 (2015-12-17)
[    0.000000] bootconsole [earlyprom0] enabled
[    0.000000] ARCH: SUN4U

(lots cut)

[   14.971631] Unpacking initramfs...
[   15.662728] Freeing initrd memory: 8296K (fffff80004400000 -
fffff80004c1a000)
[   15.667565] futex hash table entries: 256 (order: -1, 6144 bytes)
[   15.668290] audit: initializing netlink subsys (disabled)
[   15.669175] audit: type=2000 audit(1.116:1): initialized
[   15.673590] HugeTLB registered 8 MB page size, pre-allocated 0 pages
[   15.674040] zbud: loaded
[   15.676552] VFS: Disk quotas dquot_6.6.0
[   15.676772] VFS: Dquot-cache hash table entries: 1024 (order 0, 8192
bytes)
[   15.705203] Block layer SCSI generic (bsg) driver version 0.4 loaded
(major 252)
[   15.705981] io scheduler noop registered
[   15.706114] io scheduler deadline registered
[   15.706854] io scheduler cfq registered (default)
[   15.713107] ffe30ea0: ttyS0 at MMIO 0x1fe020043f8 (irq = 5, base_baud
= 115387) is a 16550A
[   15.713393] Console: ttyS0 (SU)
[   15.747368] console [ttyS0] enabled
[   15.752638] mousedev: PS/2 mouse device common for all mice
[   15.762844] rtc-m48t59 rtc-m48t59.0: rtc core: registered m48t59 as rtc0
[   15.764132] ledtrig-cpu: registered to indicate activity on CPUs
[   15.766301] NET: Registered protocol family 10
[   15.783012] mip6: Mobile IPv6
[   15.783469] NET: Registered protocol family 17
[   15.783979] mpls_gso: MPLS GSO support
[   15.787055] registered taskstats version 1
[   15.788251] zswap: loaded using pool lzo/zbud
[   15.793110] rtc-m48t59 rtc-m48t59.0: setting system clock to
2017-01-06 16:45:13 UTC (1483721113)
[   16.232741] random: systemd-udevd urandom read with 0 bits of entropy
available
[   17.364137] ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
[   17.419850] ne2k-pci 0000:00:04.0 eth0: RealTek RTL-8029 found at
0x1fe02008000, IRQ 6, 52:54:00:12:34:56.
[   17.437419] Unable to handle kernel NULL pointer dereference
[   17.437894] tsk->{mm,active_mm}->context = 0000000000000020
[   17.438299] tsk->{mm,active_mm}->pgd = fffff8000f53a000
[   17.438823]               \|/ ____ \|/
[   17.438823]               "@'/ .. \`@"
[   17.438823]               /_| \__/ |_\
[   17.438823]                  \__U_/
[   17.439865] systemd-udevd(63): Oops [#1]
[   17.440435] CPU: 0 PID: 63 Comm: systemd-udevd Not tainted
4.3.0-1-sparc64 #1 Debian 4.3.3-2
[   17.441063] task: fffff8000f4280e0 ti: fffff8000f590000 task.ti:
fffff8000f590000
[   17.441601] TSTATE: 0000009911001601 TPC: 000000001002426c TNPC:
0000000010024270 Y: 00000000    Not tainted
[   17.442760] TPC: <vp_reset+0xc/0x40 [virtio_pci]>
[   17.443210] g0: 00000000006b03c0 g1: 000001ff04040014 g2:
fffffffffffb0000 g3: 0000000000000000
[   17.443804] g4: fffff8000f4280e0 g5: 00000000002ca680 g6:
fffff8000f590000 g7: 0000000000000001
[   17.444400] o0: 0000000000000001 o1: fffff8000f5903f8 o2:
0000000010024264 o3: 0000000000000000
[   17.444993] o4: 0000000000000032 o5: 0000000000000000 sp:
fffff8000f592991 ret_pc: 000000000040564c
[   17.445613] RPC: <__spitfire_cee_trap_continue+0xb8/0xc8>
[   17.446027] l0: 0000000000001000 l1: 0000009911001600 l2:
0000000010024260 l3: 0000000000000400
[   17.446691] l4: 0000000000000000 l5: 0000000000000001 l6:
0000000000000000 l7: 0000000000000008
[   17.447269] i0: 0000000000000000 i1: 000000001000ad08 i2:
fffff8000f593380 i3: fffff8000f41a880
[   17.447844] i4: fffff8000f41a888 i5: fffff8000f5b92a0 i6:
fffff8000f592a41 i7: 0000000000764384
[   17.448447] I7: <dev_set_name+0x24/0x40>
[   17.448768] Call Trace:
[   17.449032]  [0000000000764384] dev_set_name+0x24/0x40
[   17.449466]  [000000001000a4e4] register_virtio_device+0x64/0x100
[virtio]
[   17.449919]  [0000000010025820] virtio_pci_probe+0xa0/0x160 [virtio_pci]
[   17.450426]  [00000000006eaf40] pci_device_probe+0x80/0x100
[   17.450799]  [000000000076928c] driver_probe_device+0x16c/0x480
[   17.451194]  [0000000000769628] __driver_attach+0x88/0xa0
[   17.451565]  [0000000000766fdc] bus_for_each_dev+0x5c/0xa0
[   17.451934]  [0000000000768c1c] driver_attach+0x1c/0x40
[   17.452300]  [0000000000768710] bus_add_driver+0x1f0/0x2a0
[   17.452668]  [000000000076a114] driver_register+0x74/0x120
[   17.453030]  [00000000006e9894] __pci_register_driver+0x34/0x60
[   17.453467]  [000000001002a018] virtio_pci_driver_init+0x18/0x28
[virtio_pci]
[   17.453928]  [0000000000426c58] do_one_initcall+0xb8/0x200
[   17.454294]  [0000000000525200] do_init_module+0x50/0x1f0
[   17.454728]  [00000000004c2514] load_module+0x1c54/0x23c0
[   17.455092]  [00000000004c2e74] SyS_finit_module+0x94/0xe0
[   17.455507] Disabling lock debugging due to kernel taint
[   17.455957] Caller[0000000000764384]: dev_set_name+0x24/0x40
[   17.456380] Caller[000000001000a4e4]:
register_virtio_device+0x64/0x100 [virtio]
[   17.456875] Caller[0000000010025820]: virtio_pci_probe+0xa0/0x160
[virtio_pci]
[   17.457355] Caller[00000000006eaf40]: pci_device_probe+0x80/0x100
[   17.457753] Caller[000000000076928c]: driver_probe_device+0x16c/0x480
[   17.458167] Caller[0000000000769628]: __driver_attach+0x88/0xa0
[   17.458642] Caller[0000000000766fdc]: bus_for_each_dev+0x5c/0xa0
[   17.459038] Caller[0000000000768c1c]: driver_attach+0x1c/0x40
[   17.459416] Caller[0000000000768710]: bus_add_driver+0x1f0/0x2a0
[   17.459808] Caller[000000000076a114]: driver_register+0x74/0x120
[   17.460208] Caller[00000000006e9894]: __pci_register_driver+0x34/0x60
[   17.460631] Caller[000000001002a018]:
virtio_pci_driver_init+0x18/0x28 [virtio_pci]
[   17.461134] Caller[0000000000426c58]: do_one_initcall+0xb8/0x200
[   17.461526] Caller[0000000000525200]: do_init_module+0x50/0x1f0
[   17.461912] Caller[00000000004c2514]: load_module+0x1c54/0x23c0
[   17.462295] Caller[00000000004c2e74]: SyS_finit_module+0x94/0xe0
[   17.462758] Caller[00000000004060f4]: linux_sparc_syscall+0x34/0x44
[   17.463195] Caller[fffff801005fe708]: 0xfffff801005fe708
[   17.463597] Instruction DUMP: 9de3bf50  01000000  01000000 <c25e22f8>
82006014  c0a843a0  c25e22f8  82006014  c28843a0

Disabling "modern" mode enables boot to proceed as normal:

$ ./qemu-system-sparc64 \
-drive
file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
-device virtio-blk-pci,disable-modern=on,drive=cd \
-nographic \
-bios openbios-builtin.elf.nostrip \
-m 256

[    0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 3.10.24 1999/01/01 01:01'
[    0.000000] PROMLIB: Root node compatible: sun4u
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.3.0-1-sparc64
(debian-kernel@lists.debian.org) (gcc version 4.9.3 (Debian 4.9.3-10) )
#1 Debian 4.3.3-2 (2015-12-17)
[    0.000000] bootconsole [earlyprom0] enabled
[    0.000000] ARCH: SUN4U

(lots cut)

[   11.390769] Unpacking initramfs...
[   12.082838] Freeing initrd memory: 8296K (fffff80004400000 -
fffff80004c1a000)
[   12.087735] futex hash table entries: 256 (order: -1, 6144 bytes)
[   12.088461] audit: initializing netlink subsys (disabled)
[   12.089350] audit: type=2000 audit(1.116:1): initialized
[   12.094237] HugeTLB registered 8 MB page size, pre-allocated 0 pages
[   12.094830] zbud: loaded
[   12.097379] VFS: Disk quotas dquot_6.6.0
[   12.097616] VFS: Dquot-cache hash table entries: 1024 (order 0, 8192
bytes)
[   12.126631] Block layer SCSI generic (bsg) driver version 0.4 loaded
(major 252)
[   12.127420] io scheduler noop registered
[   12.127555] io scheduler deadline registered
[   12.127905] io scheduler cfq registered (default)
[   12.133862] ffe30ea0: ttyS0 at MMIO 0x1fe020043f8 (irq = 5, base_baud
= 115387) is a 16550A
[   12.134133] Console: ttyS0 (SU)
[   12.188942] console [ttyS0] enabled
[   12.195464] mousedev: PS/2 mouse device common for all mice
[   12.204837] rtc-m48t59 rtc-m48t59.0: rtc core: registered m48t59 as rtc0
[   12.206309] ledtrig-cpu: registered to indicate activity on CPUs
[   12.208736] NET: Registered protocol family 10
[   12.227061] mip6: Mobile IPv6
[   12.227679] NET: Registered protocol family 17
[   12.228391] mpls_gso: MPLS GSO support
[   12.232356] registered taskstats version 1
[   12.233854] zswap: loaded using pool lzo/zbud
[   12.239243] rtc-m48t59 rtc-m48t59.0: setting system clock to
2017-01-06 16:52:10 UTC (1483721530)
[   12.697036] random: systemd-udevd urandom read with 0 bits of entropy
available
[   13.796267] ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
[   13.840168] ne2k-pci 0000:00:04.0 eth0: RealTek RTL-8029 found at
0x1fe02008000, IRQ 6, 52:54:00:12:34:56.
[   13.860059] virtio-pci 0000:00:06.0: virtio_pci: leaving for legacy
driver
[   14.710597] ne2k-pci 0000:00:04.0 enp0s4: renamed from eth0
[   14.714208]  vda: vda1 vda2 vda3 vda4 vda5 vda6 vda7 vda8


Guenter, can you try a similar command line and confirm whether it fixes
the issue for you under QEMU 2.7 and 2.8? I have no idea as to why the
difference in legacy/non-legacy codepaths should crash the kernel though.


ATB,

Mark.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2017-01-06 17:04     ` Mark Cave-Ayland
@ 2017-01-06 18:34       ` Guenter Roeck
  2017-01-06 19:42         ` Mark Cave-Ayland
  0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2017-01-06 18:34 UTC (permalink / raw)
  To: Mark Cave-Ayland
  Cc: qemu-devel@nongnu.org >> QEMU Developers,
	Michael S. Tsirkin

On Fri, Jan 06, 2017 at 05:04:58PM +0000, Mark Cave-Ayland wrote:
> On 30/12/16 19:57, Guenter Roeck wrote:
> 
> Disabling "modern" mode enables boot to proceed as normal:
> 
> $ ./qemu-system-sparc64 \
> -drive
> file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
> -device virtio-blk-pci,disable-modern=on,drive=cd \
> -nographic \
> -bios openbios-builtin.elf.nostrip \
> -m 256
> 
...
> 
> Guenter, can you try a similar command line and confirm whether it fixes
> the issue for you under QEMU 2.7 and 2.8? I have no idea as to why the
> difference in legacy/non-legacy codepaths should crash the kernel though.
> 
Unfortunately, my qemu command line wizard capabilities are somewhat lacking.
I had tried that before, but just could not figure out how to change my command
line to include "disable-modern=on". If you have an idea, please let me know.
Here it is:

${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
	        -drive file=${rootfs},if=virtio \
		-net nic,model=virtio \
		-kernel arch/sparc/boot/image -no-reboot \
		-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
		-nographic 

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2017-01-06 18:34       ` Guenter Roeck
@ 2017-01-06 19:42         ` Mark Cave-Ayland
  2017-01-06 21:05           ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Mark Cave-Ayland @ 2017-01-06 19:42 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: qemu-devel@nongnu.org >> QEMU Developers,
	Michael S. Tsirkin

On 06/01/17 18:34, Guenter Roeck wrote:

> On Fri, Jan 06, 2017 at 05:04:58PM +0000, Mark Cave-Ayland wrote:
>> On 30/12/16 19:57, Guenter Roeck wrote:
>>
>> Disabling "modern" mode enables boot to proceed as normal:
>>
>> $ ./qemu-system-sparc64 \
>> -drive
>> file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
>> -device virtio-blk-pci,disable-modern=on,drive=cd \
>> -nographic \
>> -bios openbios-builtin.elf.nostrip \
>> -m 256
>>
> ...
>>
>> Guenter, can you try a similar command line and confirm whether it fixes
>> the issue for you under QEMU 2.7 and 2.8? I have no idea as to why the
>> difference in legacy/non-legacy codepaths should crash the kernel though.
>>
> Unfortunately, my qemu command line wizard capabilities are somewhat lacking.
> I had tried that before, but just could not figure out how to change my command
> line to include "disable-modern=on". If you have an idea, please let me know.
> Here it is:
> 
> ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
> 	        -drive file=${rootfs},if=virtio \
> 		-net nic,model=virtio \
> 		-kernel arch/sparc/boot/image -no-reboot \
> 		-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> 		-nographic 

If you apply the same principles from my example above to your command
line then you should end up with something like:

${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
        -drive file=${rootfs},if=none,id=hd \
	-device virtio-blk-pci,disable-modern=on,drive=hd \
	-net nic,model=virtio \
	-kernel arch/sparc/boot/image -no-reboot \
	-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
	-nographic


ATB,

Mark.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2017-01-06 19:42         ` Mark Cave-Ayland
@ 2017-01-06 21:05           ` Guenter Roeck
  2017-01-06 21:48             ` Michael S. Tsirkin
  0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2017-01-06 21:05 UTC (permalink / raw)
  To: Mark Cave-Ayland
  Cc: qemu-devel@nongnu.org >> QEMU Developers,
	Michael S. Tsirkin

On Fri, Jan 06, 2017 at 07:42:19PM +0000, Mark Cave-Ayland wrote:
> On 06/01/17 18:34, Guenter Roeck wrote:
> 
> > On Fri, Jan 06, 2017 at 05:04:58PM +0000, Mark Cave-Ayland wrote:
> >> On 30/12/16 19:57, Guenter Roeck wrote:
> >>
> >> Disabling "modern" mode enables boot to proceed as normal:
> >>
> >> $ ./qemu-system-sparc64 \
> >> -drive
> >> file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
> >> -device virtio-blk-pci,disable-modern=on,drive=cd \
> >> -nographic \
> >> -bios openbios-builtin.elf.nostrip \
> >> -m 256
> >>
> > ...
> >>
> >> Guenter, can you try a similar command line and confirm whether it fixes
> >> the issue for you under QEMU 2.7 and 2.8? I have no idea as to why the
> >> difference in legacy/non-legacy codepaths should crash the kernel though.
> >>
> > Unfortunately, my qemu command line wizard capabilities are somewhat lacking.
> > I had tried that before, but just could not figure out how to change my command
> > line to include "disable-modern=on". If you have an idea, please let me know.
> > Here it is:
> > 
> > ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
> > 	        -drive file=${rootfs},if=virtio \
> > 		-net nic,model=virtio \
> > 		-kernel arch/sparc/boot/image -no-reboot \
> > 		-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> > 		-nographic 
> 
> If you apply the same principles from my example above to your command
> line then you should end up with something like:
> 
> ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
>         -drive file=${rootfs},if=none,id=hd \
> 	-device virtio-blk-pci,disable-modern=on,drive=hd \
> 	-net nic,model=virtio \
> 	-kernel arch/sparc/boot/image -no-reboot \
> 	-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> 	-nographic
> 
That works, but only if I drop "-net nic,model=virtio". Otherwise I get
the same crash again. Any idea how to set the network configuration
the same way ?

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2017-01-06 21:05           ` Guenter Roeck
@ 2017-01-06 21:48             ` Michael S. Tsirkin
  2017-01-06 23:23               ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Michael S. Tsirkin @ 2017-01-06 21:48 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Mark Cave-Ayland, qemu-devel@nongnu.org >> QEMU Developers

On Fri, Jan 06, 2017 at 01:05:46PM -0800, Guenter Roeck wrote:
> On Fri, Jan 06, 2017 at 07:42:19PM +0000, Mark Cave-Ayland wrote:
> > On 06/01/17 18:34, Guenter Roeck wrote:
> > 
> > > On Fri, Jan 06, 2017 at 05:04:58PM +0000, Mark Cave-Ayland wrote:
> > >> On 30/12/16 19:57, Guenter Roeck wrote:
> > >>
> > >> Disabling "modern" mode enables boot to proceed as normal:
> > >>
> > >> $ ./qemu-system-sparc64 \
> > >> -drive
> > >> file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
> > >> -device virtio-blk-pci,disable-modern=on,drive=cd \
> > >> -nographic \
> > >> -bios openbios-builtin.elf.nostrip \
> > >> -m 256
> > >>
> > > ...
> > >>
> > >> Guenter, can you try a similar command line and confirm whether it fixes
> > >> the issue for you under QEMU 2.7 and 2.8? I have no idea as to why the
> > >> difference in legacy/non-legacy codepaths should crash the kernel though.
> > >>
> > > Unfortunately, my qemu command line wizard capabilities are somewhat lacking.
> > > I had tried that before, but just could not figure out how to change my command
> > > line to include "disable-modern=on". If you have an idea, please let me know.
> > > Here it is:
> > > 
> > > ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
> > > 	        -drive file=${rootfs},if=virtio \
> > > 		-net nic,model=virtio \
> > > 		-kernel arch/sparc/boot/image -no-reboot \
> > > 		-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> > > 		-nographic 
> > 
> > If you apply the same principles from my example above to your command
> > line then you should end up with something like:
> > 
> > ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
> >         -drive file=${rootfs},if=none,id=hd \
> > 	-device virtio-blk-pci,disable-modern=on,drive=hd \
> > 	-net nic,model=virtio \
> > 	-kernel arch/sparc/boot/image -no-reboot \
> > 	-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> > 	-nographic
> > 
> That works, but only if I drop "-net nic,model=virtio". Otherwise I get
> the same crash again. Any idea how to set the network configuration
> the same way ?
> 
> Thanks,
> Guenter


Replace it with -device virtio-net-pci.

-- 
MST

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] Problems with qemu "modern" virtio on sparc64
  2017-01-06 21:48             ` Michael S. Tsirkin
@ 2017-01-06 23:23               ` Guenter Roeck
  0 siblings, 0 replies; 9+ messages in thread
From: Guenter Roeck @ 2017-01-06 23:23 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Mark Cave-Ayland, qemu-devel@nongnu.org >> QEMU Developers

On Fri, Jan 06, 2017 at 11:48:37PM +0200, Michael S. Tsirkin wrote:
> On Fri, Jan 06, 2017 at 01:05:46PM -0800, Guenter Roeck wrote:
> > On Fri, Jan 06, 2017 at 07:42:19PM +0000, Mark Cave-Ayland wrote:
> > > On 06/01/17 18:34, Guenter Roeck wrote:
> > > 
> > > > On Fri, Jan 06, 2017 at 05:04:58PM +0000, Mark Cave-Ayland wrote:
> > > >> On 30/12/16 19:57, Guenter Roeck wrote:
> > > >>
> > > >> Disabling "modern" mode enables boot to proceed as normal:
> > > >>
> > > >> $ ./qemu-system-sparc64 \
> > > >> -drive
> > > >> file=debian-9.0-sparc64-NETINST1.iso,if=none,index=0,id=cd,media=cdrom \
> > > >> -device virtio-blk-pci,disable-modern=on,drive=cd \
> > > >> -nographic \
> > > >> -bios openbios-builtin.elf.nostrip \
> > > >> -m 256
> > > >>
> > > > ...
> > > >>
> > > >> Guenter, can you try a similar command line and confirm whether it fixes
> > > >> the issue for you under QEMU 2.7 and 2.8? I have no idea as to why the
> > > >> difference in legacy/non-legacy codepaths should crash the kernel though.
> > > >>
> > > > Unfortunately, my qemu command line wizard capabilities are somewhat lacking.
> > > > I had tried that before, but just could not figure out how to change my command
> > > > line to include "disable-modern=on". If you have an idea, please let me know.
> > > > Here it is:
> > > > 
> > > > ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
> > > > 	        -drive file=${rootfs},if=virtio \
> > > > 		-net nic,model=virtio \
> > > > 		-kernel arch/sparc/boot/image -no-reboot \
> > > > 		-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> > > > 		-nographic 
> > > 
> > > If you apply the same principles from my example above to your command
> > > line then you should end up with something like:
> > > 
> > > ${QEMU} -M ${mach} -cpu "${cpu}" -m 512 \
> > >         -drive file=${rootfs},if=none,id=hd \
> > > 	-device virtio-blk-pci,disable-modern=on,drive=hd \
> > > 	-net nic,model=virtio \
> > > 	-kernel arch/sparc/boot/image -no-reboot \
> > > 	-append "root=/dev/vda init=/sbin/init.sh console=ttyS0" \
> > > 	-nographic
> > > 
> > That works, but only if I drop "-net nic,model=virtio". Otherwise I get
> > the same crash again. Any idea how to set the network configuration
> > the same way ?
> > 
> > Thanks,
> > Guenter
> 
> Replace it with -device virtio-net-pci.
> 

Excellent, that works. Setting either entry to "disable-modern=off" crashes
as observed earlier.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-01-06 23:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-25 18:11 [Qemu-devel] Problems with qemu "modern" virtio on sparc64 Guenter Roeck
2016-12-30 18:18 ` Mark Cave-Ayland
2016-12-30 19:57   ` Guenter Roeck
2017-01-06 17:04     ` Mark Cave-Ayland
2017-01-06 18:34       ` Guenter Roeck
2017-01-06 19:42         ` Mark Cave-Ayland
2017-01-06 21:05           ` Guenter Roeck
2017-01-06 21:48             ` Michael S. Tsirkin
2017-01-06 23:23               ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).