NetBSD Problem Report #45671
From gson@gson.org Tue Nov 29 16:33:04 2011
Return-Path: <gson@gson.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id B285463B848
for <gnats-bugs@gnats.NetBSD.org>; Tue, 29 Nov 2011 16:33:04 +0000 (UTC)
Message-Id: <20111129163302.1A06175E5D@guava.gson.org>
Date: Tue, 29 Nov 2011 18:33:01 +0200 (EET)
From: gson@gson.org (Andreas Gustafsson)
Reply-To: gson@gson.org (Andreas Gustafsson)
To: gnats-bugs@gnats.NetBSD.org
Subject: Current NetBSD/i386 does not install under current qemu
X-Send-Pr-Version: 3.95
>Number: 45671
>Category: kern
>Synopsis: Current NetBSD/i386 does not install under current qemu
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Nov 29 16:35:00 +0000 2011
>Closed-Date: Sun Oct 20 21:08:51 +0000 2013
>Last-Modified: Wed May 21 22:10:00 +0000 2014
>Originator: Andreas Gustafsson
>Release: NetBSD-current >= 2011.02.10.00.43.20
>Organization:
>Environment:
System: NetBSD
Architecture: i386
Machine: i386
>Description:
Attempting to install NetBSD-current in qemu version 1.0-rc4 fails:
NetBSD 5.99.57 (GENERIC) #0: Sun Nov 27 07:41:56 UTC 2011
builds@b8.netbsd.org:/home/builds/ab/HEAD/i386/201111270050Z-obj/home/builds/ab/HEAD/src/sys/arch/i386/compile/GENERIC
total memory = 127 MB
avail memory = 112 MB
cprng kernel: WARNING insufficient entropy at creation.
mainbus0 (root)
cpu0 at mainbus0 apid 0: QEMU Virtual CPU version 0.15.93, id 0x633
ioapic0 at mainbus0 apid 1
acpi0 at mainbus0: Intel ACPICA 20110623
panic: pci_make_tag: bad request
fatal breakpoint trap in supervisor mode
trap type 1 code 0 eip c0269b04 cs 8 eflags 282 cr2 0 ilevel 8
Stopped in pid 0.1 (system) at netbsd:breakpoint+0x4: popl %ebp
db{0}> t
breakpoint(c0c04c75,c0cc2f80,c0bc91a4,c0e358e4,2,c11b70d6,c0e35908,c053999d,c0cdef20,0) at netbsd:breakpoint+0x4
vpanic(c0bc91a4,c0e358e4,c117d068,f,c11e6fcc,0,c0e35918,c0665969,c0bc91a4,c0b1bf4c) at netbsd:vpanic+0x1e2
printf_nolog(c0bc91a4,c0b1bf4c,c0e35908,c010d957,8,c0c1f2c0,0,0,c0d08e20,0) at netbsd:printf_nolog
pci_decompose_tag(c0e3599c,0,0,10,0,ca675898,c0e35988,c0d08e20,c11b9200,0) at netbsd:pci_decompose_tag
acpi_pci_link_add_reference(c12011c0,0,0,10,0,ca41eb90,0,3,0,4) at netbsd:acpi_pci_link_add_reference+0xb2
mpacpi_find_interrupts(ca41eb90,c0116a4a,c0116a5e,0,ca41eb90,c0e35b50,c0e35aa8,c01180c7,c,c0116a4a) at netbsd:mpacpi_find_interrupts+0x5ea
acpi_md_callback(c,c0116a4a,c0116a5e,0,1,ca3fd7cc,1,c078e2e4,c0cb6ce0,ca435ea0) at netbsd:acpi_md_callback+0x1c
acpi_attach(ca660500,ca660d00,c0e35b50,0,c0e35b50,80,f,10,c0b5dcd9,c0e35b42) at netbsd:acpi_attach+0x14a
config_attach_loc(ca660500,c0c1d7a0,0,c0e35b50,0,0,2589,58421301,4350,53445842) at netbsd:config_attach_loc+0x176
config_found_ia(ca660500,c0b59f3c,c0e35b50,0,4f424101,20534843,80,f,c0c2bbe0,c0c2bc00) at netbsd:config_found_ia+0x36
mainbus_rescan(ca660500,c0b59f3c,0,ca660500,c0cb6ce0,c0bd71ce,c0e35bd8,c093575c,ca437f28,c0b8e0a1) at netbsd:mainbus_rescan+0x1c2
mainbus_attach(0,ca660500,0,c078f4b7,c0b59187,c0b59187,636f4200,7368,3001403,101) at netbsd:mainbus_attach+0xb4
config_attach_loc(0,c0c1bbb0,0,0,0,7368,f10,0,c0b59187,e3b000) at netbsd:config_attach_loc+0x176
config_attach(0,c0c1bbb0,0,0,1984,c0cc5680,c0e35cd8,c01f224e,c0b59187,0) at netbsd:config_attach+0x2e
config_rootfound(c0b59187,0,0,8,1984,1984,c0e35d40,c04b78d8,c0ba59a1,6) at netbsd:config_rootfound+0x42
cpu_configure(c0ba59a1,6,3,0,ffff,f9b00,ffff,f9300,0,0) at netbsd:cpu_configure+0x2a
main(0,0,0,0,0,0,0,0,0,0) at netbsd:main+0x2ba
db{0}>
>How-To-Repeat:
Get qemu 1.0-rc4 from <http://wiki.qemu.org/Download> and install it
on a host of your choice (not necessarily a NetBSD one).
Then download a NetBSD-current/i386 install ISO from
http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201111270050Z/i386/installation/cdrom/boot-com.iso
or if that has expired, from
http://www.gson.org/netbsd/bugs/qemu/boot-com-201111270050Z.iso
and try to boot it:
qemu-system-i386 -nographic -cdrom boot-com.iso
>Fix:
>Release-Note:
>Audit-Trail:
From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: kern/45671: Current NetBSD/i386 does not install under current qemu
Date: Wed, 14 Dec 2011 21:22:06 +0200
There is now also a corresponding qemu bug ticket:
https://bugs.launchpad.net/bugs/897771
The comments in that ticket identify the exact qemu commit that
triggered the regression, but it's not clear to me from the diffs how
that commit broke interoperability with NetBSD.
On the NetBSD side, all versions newer than CVS date
2011.02.10.00.43.20 are effected; the commit message for the commit in
case says "Reinstate INSTALL kernel for embedded ramdisk installs".
I assume the reason earlier versions are not affected is that their
installation kernels do not support ACPI.
In any case, it would be useful to fix both NetBSD and qemu: NetBSD
should be fixed so that future versions of NetBSD will run under
today's qemu, and qemu should be fixed so that future version of qemu
will run today's version of NetBSD.
I have also obtained a more detailed stack trace by attaching a
remote gdb to qemu's built-in gdb server; the relevant parts
read as follows:
#11 0xc0994bb1 in vpanic (fmt=3D0xc0e0a530 "%s: bad request",=20
ap=3D0xc1170854 "=5F#=E0=C0x\b\027\301{=DA\020\300`pP=C1=C0\022\3=
53\300@#\361\300")
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fprf.c:288
#12 0xc09949e5 in panic (fmt=3D0xc0e0a530 "%s: bad request")
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fprf.c:205
#13 0xc0801d7e in pci=5Fmake=5Ftag (pc=3D0x0, bus=3D0, device=3D16, f=
unction=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/x86/=
pci/pci=5Fmachdep.c:420
#14 0xc012d9ca in acpi=5Fpci=5Flink=5Fadd=5Ffunctions (sc=3D0xc15311c=
0, link=3D0xc1509e00,=20
bus=3D0, device=3D16, pin=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/dev/acpi/=
acpi=5Fpci=5Flink.c:572
#15 0xc012ddc8 in acpi=5Fpci=5Flink=5Fadd=5Freference (v=3D0xc15311c0=
, index=3D0, bus=3D0,=20
slot=3D16, pin=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/dev/acpi/=
acpi=5Fpci=5Flink.c:684
#16 0xc0741a21 in mpacpi=5Fpciroute (mpr=3D0xc14ab8c0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/x86/=
x86/mpacpi.c:847
#17 0xc0741efb in mpacpi=5Fconfig=5Firouting (acpi=3D0xca987d44)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/x86/=
x86/mpacpi.c:1021
#18 0xc0742232 in mpacpi=5Ffind=5Finterrupts (self=3D0xca987d44)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/x86/=
x86/mpacpi.c:1150
#19 0xc012c2ee in acpi=5Fmd=5Fcallback ()
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/x86/=
acpi/acpi=5Fmachdep.c:292
#20 0xc011a292 in acpi=5Fattach (parent=3D0xca987540, self=3D0xca72d0=
00,=20
aux=3D0xc1170b18)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/dev/acpi/=
acpi.c:476
#21 0xc097bbab in config=5Fattach=5Floc (parent=3D0xca987540, cf=3D0x=
c0eb1050,=20
locs=3D0x0, aux=3D0xc1170b18, print=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fautoconf.c:1457
#22 0xc097acf4 in config=5Ffound=5Fsm=5Floc (parent=3D0xca987540,=20
ifattr=3D0xc0de3616 "acpibus", locs=3D0x0, aux=3D0xc1170b18, prin=
t=3D0, submatch=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fautoconf.c:1044
#23 0xc097ad81 in config=5Ffound=5Fia (parent=3D0xca987540,=20
ifattr=3D0xc0de3616 "acpibus", aux=3D0xc1170b18, print=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fautoconf.c:1059
#24 0xc070c8e9 in mainbus=5Frescan (self=3D0xca987540,=20
ifattr=3D0xc0de3616 "acpibus", locators=3D0x0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/i386=
/i386/mainbus.c:354
#25 0xc070c6de in mainbus=5Fattach (parent=3D0x0, self=3D0xca987540, =
aux=3D0x0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/i386=
/i386/mainbus.c:292
#26 0xc097bbab in config=5Fattach=5Floc (parent=3D0x0, cf=3D0xc0eb105=
0, locs=3D0x0,=20
aux=3D0x0, print=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fautoconf.c:1457
#27 0xc097bc2b in config=5Fattach (parent=3D0x0, cf=3D0xc0eaf1f0, aux=
=3D0x0, print=3D0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fautoconf.c:1472
#28 0xc097ae07 in config=5Frootfound (rootname=3D0xc0bffc74 "mainbus"=
, aux=3D0x0)
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/subr=
=5Fautoconf.c:1078
#29 0xc0233d40 in cpu=5Fconfigure ()
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/arch/i386=
/i386/autoconf.c:120
#30 0xc05d232c in configure ()
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/init=
=5Fmain.c:765
#31 0xc05d1d80 in main ()
at /bracket/i386-debug/work/2011.12.08.15.35.34/src/sys/kern/init=
=5Fmain.c:522
--=20
Andreas Gustafsson, gson@gson.org
From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: Jukka Ruohonen <jruohonen@iki.fi>, David Young <dyoung@pobox.com>
Subject: Re: kern/45671: Current NetBSD/i386 does not install under current qemu
Date: Wed, 11 Jan 2012 19:08:55 +0200
I found the cause of this; thanks to Jukka Ruohonen and David Young
for pointing me in the right direction.
Qemu broke the emulation of the PCI configuration register at I/O port
0xCF8, such that doing an outb to port 0xCFB or an outw to port 0xCFA
now changes the value of the configuration register. Because no real
PCI configuration register behaves that way, NetBSD concludes that the
emulated system doesn't support PCI configuration mode 1 and assumes
it must therefore support configuration mode 2. It then panics when
it finds a PCI device with device number 16, because mode 2 only
supports 4-bit device numbers.
There is a simple patch to qemu which has been verified to fix the
problem:
http://thread.gmane.org/gmane.comp.emulators.qemu/130695
but at the time of writing, it has not yet been applied to the qemu
repository.
Even though this is clearly a qemu bug, there is probably still
some room for improvement on the NetBSD side in terms of failing
more gracefully and/or providing better diagnostics.
--
Andreas Gustafsson, gson@gson.org
From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@netbsd.org,
gnats-admin@netbsd.org,
netbsd-bugs@netbsd.org
Subject: Re: kern/45671: Current NetBSD/i386 does not install under current qemu
Date: Fri, 4 Oct 2013 19:16:39 +0300
Dear gnats,
Today, I attempted to install NetBSD 6.1.1 on a virtual server hosted
by edis.at and based on the Linux KVM virtialization technology.
Booting from the install ISO failed with a panic identical to that
reported in PR 45671.
I assume this means that although the qemu bug causing this has been fixed
for more than a year now ( https://bugs.launchpad.net/qemu/+bug/897771 ),
there are still versions of KVM in production use that are based on
buggy versions of qemu. Therefore, it would still be useful for
NetBSD to work around the bug, as it would broaden the range of VPS
hosting options available.
--
Andreas Gustafsson, gson@gson.org
From: "Andreas Gustafsson" <gson@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/45671 CVS commit: src/sys/arch/x86/pci
Date: Sat, 5 Oct 2013 11:20:35 +0000
Module Name: src
Committed By: gson
Date: Sat Oct 5 11:20:35 UTC 2013
Modified Files:
src/sys/arch/x86/pci: pci_machdep.c
Log Message:
Force PCI mode 1 when running under QEMU, to work around QEMU bug 897771.
This should also make it possible to boot NetBSD under versions of KVM
that have inherited said QEMU bug. Fixes PR kern/45671.
To generate a diff of this commit:
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/x86/pci/pci_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Sun, 06 Oct 2013 08:18:40 +0000
State-Changed-Why:
did you mean to close this? :-)
State-Changed-From-To: feedback->pending-pullups
State-Changed-By: gson@NetBSD.org
State-Changed-When: Sun, 06 Oct 2013 09:12:28 +0000
State-Changed-Why:
Waiting for a pullup to netbsd-6 before closing.
From: "Manuel Bouyer" <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/45671 CVS commit: [netbsd-6] src/sys/arch/x86/pci
Date: Sun, 20 Oct 2013 13:16:57 +0000
Module Name: src
Committed By: bouyer
Date: Sun Oct 20 13:16:57 UTC 2013
Modified Files:
src/sys/arch/x86/pci [netbsd-6]: pci_machdep.c
Log Message:
Apply patch, requested by riastradh in ticket #962:
sys/arch/x86/pci/pci_machdep.c 1.61 via patch
Force PCI mode 1 when running under QEMU, to work around
QEMU bug 897771.
This should also make it possible to boot NetBSD under versions of KVM
that have inherited said QEMU bug. Fixes PR kern/45671.
To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.54.2.1 src/sys/arch/x86/pci/pci_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Manuel Bouyer" <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/45671 CVS commit: [netbsd-6-0] src/sys/arch/x86/pci
Date: Sun, 20 Oct 2013 13:18:48 +0000
Module Name: src
Committed By: bouyer
Date: Sun Oct 20 13:18:48 UTC 2013
Modified Files:
src/sys/arch/x86/pci [netbsd-6-0]: pci_machdep.c
Log Message:
Apply patchm requested by gson in ticket #963:
sys/arch/x86/pci/pci_machdep.c 1.61 via patch
Force PCI mode 1 when running under QEMU, to work around
QEMU bug 897771.
This should also make it possible to boot NetBSD under versions of KVM
that have inherited said QEMU bug. Fixes PR kern/45671.
To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.54.6.1 src/sys/arch/x86/pci/pci_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Manuel Bouyer" <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/45671 CVS commit: [netbsd-6-1] src/sys/arch/x86/pci
Date: Sun, 20 Oct 2013 13:18:50 +0000
Module Name: src
Committed By: bouyer
Date: Sun Oct 20 13:18:50 UTC 2013
Modified Files:
src/sys/arch/x86/pci [netbsd-6-1]: pci_machdep.c
Log Message:
Apply patchm requested by gson in ticket #963:
sys/arch/x86/pci/pci_machdep.c 1.61 via patch
Force PCI mode 1 when running under QEMU, to work around
QEMU bug 897771.
This should also make it possible to boot NetBSD under versions of KVM
that have inherited said QEMU bug. Fixes PR kern/45671.
To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.54.8.1 src/sys/arch/x86/pci/pci_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: pending-pullups->closed
State-Changed-By: bouyer@NetBSD.org
State-Changed-When: Sun, 20 Oct 2013 21:08:51 +0000
State-Changed-Why:
pullups done
From: "Manuel Bouyer" <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/45671 CVS commit: [netbsd-5] src/sys/arch/x86/pci
Date: Wed, 21 May 2014 22:05:40 +0000
Module Name: src
Committed By: bouyer
Date: Wed May 21 22:05:40 UTC 2014
Modified Files:
src/sys/arch/x86/pci [netbsd-5]: pci_machdep.c
Log Message:
Pull up following revision(s) (requested by sborrill in ticket #1903):
sys/arch/x86/pci/pci_machdep.c: revision 1.61 via patch
sys/arch/x86/pci/pci_machdep.c: revision 1.66 via patch
Force pci_mode 1 when running as Xen HVM domU to allow cd* to be
detected correctly. Fixes kern/48770. Thanks to cube@
Force PCI mode 1 when running under QEMU, to work around QEMU bug 897771.
This should also make it possible to boot NetBSD under versions of KVM
that have inherited said QEMU bug. Fixes PR kern/45671.
To generate a diff of this commit:
cvs rdiff -u -r1.34.10.1 -r1.34.10.2 src/sys/arch/x86/pci/pci_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.