NetBSD-Bugs archive

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

port-alpha/59298: alpha virtio-block hang with QEMU 9.22



>Number:         59298
>Category:       port-alpha
>Synopsis:       Alpha kernel hangs with virtio disk under QEMU 9.22
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 14 13:15:00 +0000 2025
>Originator:     Thor Lancelot Simon
>Release:        NetBSD 10.99.14
>Organization:
>Environment:
System: NetBSD 10.99.14 (INSTALL) #1: Sun Apr 13 22:58:55 EDT 2025 tls%lungfish.hvg.tjls.com@localhost:/Volumes/shares/devel/current-src/objdir/sys/arch/alpha/compile/INSTALL
Architecture: alpha
Machine: alpha
>Description:
An alpha INSTALL kernel, from today's sources, modified to add the
same virtio devices as the GENERIC.QEMU kernel, hangs shortly after
attaching ld0 at virtio0.  It actually manages to get ld0's
geometry information, then hangs forever after printing "virtio0:
interrupting at dec 6600 irq 20".

hotpoint# qemu-system-alpha --version
QEMU emulator version 9.2.2
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
hotpoint# qemu-system-alpha -drive if=virtio,file=alphatest1.img -kernel alpha-INSTALL -nographic
PCI: 0:1:0 class 0300 id 1013:00b8
PCI:   region 0 (BAR 10): 10000000
PCI:   region 1 (BAR 14): 12000000
PCI: 0:2:0 class 0200 id 8086:100e
PCI:   region 0 (BAR 10): 12020000
PCI:   region 1 (BAR 14): 0000c000
PCI:   intr pin 1 -> irq 12
PCI: 0:3:0 class 0101 id 1095:0646
PCI:   region 0 (BAR 10): 0000c040
PCI:   region 1 (BAR 14): 0000c048
PCI:   region 2 (BAR 18): 0000c050
PCI:   region 3 (BAR 1c): 0000c058
PCI:   region 4 (BAR 20): 0000c060
PCI:   intr pin 1 -> irq 16
PCI: 0:4:0 class 0100 id 1af4:1001
PCI:   region 0 (BAR 10): 0000c080
PCI:   region 4 (BAR 20): 12040000
PCI:   intr pin 1 -> irq 20
PCI: 0:7:0 class 0601 id 8086:0484
[   1.0000000] [ Kernel symbol table missing! ]
[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
[   1.0000000]     2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
[   1.0000000]     2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
[   1.0000000]     2024, 2025
[   1.0000000]     The NetBSD Foundation, Inc.  All rights reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[   1.0000000]     The Regents of the University of California.  All rights reserved.

[   1.0000000] NetBSD 10.99.14 (INSTALL) #1: Sun Apr 13 22:58:55 EDT 2025
[   1.0000000] 	tls%lungfish.hvg.tjls.com@localhost:/Volumes/shares/devel/current-src/objdir/sys/arch/alpha/compile/INSTALL
[   1.0000000] AlphaServer ES40 ("Clipper"), 250MHz, s/n QEMU
[   1.0000000] 8192 byte page size, 1 processor.
[   1.0000000] total memory = 128 MB
[   1.0000000] (120 KB reserved for PROM, 127 MB used by NetBSD)
[   1.0000000] avail memory = 114 MB
[   1.0000000] mainbus0 (root)
[   1.0000000] cpu0 at mainbus0: ID 0 (primary), 21264A-0 (EV67)
[   1.0000000] cpu0: Architecture extensions: 0x1307<PMI,PAT,MVI,CIX,FIX,BWX>
[   1.0000000] qemu0 at mainbus0: Qemu virtual machine services
[   1.0000030] tsc0 at mainbus0: 21272 Core Logic Chipset, Cchip rev 0
[   1.0000030] tsc0: 2 Dchips, 1 memory bus of 16 bytes
[   1.0000030] tsc0: arrays present: 0MB, 0MB, 0MB, 0MB, Dchip 0 rev 0
[   1.0000030] tsp0 at tsc0
[   1.0000030] pci0 at tsp0 bus 0
[   1.0000030] vga0 at pci0 dev 1 function 0: vendor 1013 product 00b8 (rev. 0x00)
[   1.0000030] wsdisplay0 at vga0 (kbdmux ignored)
[   1.0000030] drm at vga0 not configured
[   1.0000030] wm0 at pci0 dev 2 function 0: Intel i82540EM 1000BASE-T Ethernet (rev. 0x03)
[   1.0000030] wm0: interrupting at dec 6600 irq 12
[   1.0000030] wm0: Ethernet address 52:54:00:12:34:56
[   1.0000030] makphy0 at wm0 phy 1: Marvell 88E1011 Gigabit PHY, rev. 0
[   1.0000030] makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
[   1.0000030] cmdide0 at pci0 dev 3 function 0: CMD Technology PCI0646 (rev. 0x07)
[   1.0000030] cmdide0: primary channel configured to native-PCI mode, channel non-independent
[   1.0000030] cmdide0: using dec 6600 irq 16 for native-PCI interrupt
[   1.0000030] atabus0 at cmdide0 channel 0
[   1.0000030] cmdide0: secondary channel configured to native-PCI mode, channel non-independent
[   1.0000030] cmdide0: secondary channel ignored (disabled)
[   1.0000030] virtio0 at pci0 dev 4 function 0
[   1.0000030] virtio0: block device (id 2, rev. 0x00)
[   1.0000030] ld0 at virtio0: features: 0x110002e54<V1,INDIRECT_DESC,DISCARD,CONFIG_WCE,TOPOLOGY,FLUSH,BLK_SIZE,GEOMETRY,SEG_MAX>
[   1.0000030] ld0: max 254 segs of max 65536 bytes
[   1.0000030] virtio0: interrupting at dec 6600 irq 20

As an additional data point, if I tell qemu to use a virtio NIC
instead of the virtio disk, the kernel does probe and attach
vioif0 without hanging, but all access to the interface then
hangs hard ('ifconfig vioif0' hangs uninterruptably even by
^\).

>How-To-Repeat:

Apply the following patch to src/sys/arch/alpha/conf/INSTALL,
build.sh release to get a "netbsd.gz" in the "instkernel"
release subdirectory, then place that kernel in "alpha-INSTALL",
place an appropriate QEMU disk image file at "alphatest1.img",
and run "qemu-system-alpha -drive if=virtio,file=alphatest1.img -kernel alpha-INSTALL -nographic".

cvs diff: Diffing .
Index: INSTALL
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/conf/INSTALL,v
retrieving revision 1.120
diff -u -r1.120 INSTALL
--- INSTALL	6 Mar 2024 13:37:35 -0000	1.120
+++ INSTALL	14 Apr 2025 13:10:54 -0000
@@ -332,3 +332,10 @@
 pseudo-device	sl		
 
 #pseudo-device	fss			# file system snapshot device
+
+# Virtio devices
+virtio* at pci? dev ? function ?        # Virtio PCI device
+
+include "dev/virtio/virtio.config"
+no vio9p*       at virtio?      # PAGE_SIZE != VIRTIO_PAGE_SIZE
+no viomb*       at virtio?      # PAGE_SIZE != VIRTIO_PAGE_SIZE

>Fix:
Not known.



Home | Main Index | Thread Index | Old Index