1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
system_reset doesn't work with qemu-kvm and latest SeaBIOS
I've built qemu-kvm and seabios from the latest git sources, and found that the system_reset monitor command causes a freeze if I start qemu-system-x86_64 with the -no-kvm flag. This is a serial log from an attempt at rebooting:
$ ./x86_64-softmmu/qemu-system-x86_64 -monitor stdio -bios ../seabios/out/bios.bin -serial /dev/stdout -no-kvm
QEMU 0.14.50 monitor - type 'help' for more information
(qemu) Changing serial settings was 0/0 now 3/0
Start bios (version pre-0.6.3-20110309_171929-desk4)
Ram Size=0x08000000 (0x0000000000000000 high)
CPU Mhz=2202
PCI: pci_bios_init_bus_rec bus = 0x0
PIIX3/PIIX4 init: elcr=00 0c
PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237
PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000
PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010
region 4: 0x0000c000
PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113
PCI: bus=0 devfn=0x10: vendor_id=0x1013 device_id=0x00b8
region 0: 0xf0000000
region 1: 0xf2000000
region 6: 0xf2010000
PCI: bus=0 devfn=0x18: vendor_id=0x10ec device_id=0x8139
region 0: 0x0000c100
region 1: 0xf2020000
region 6: 0xf2030000
Found 1 cpu(s) max supported 1 cpu(s)
MP table addr=0x000fdb40 MPC table addr=0x000fdb50 size=224
SMBIOS ptr=0x000fdb20 table=0x07fffef0
ACPI tables: RSDP=0x000fdaf0 RSDT=0x07ffd6a0
Scan for VGA option rom
Running option rom at c000:0003
Turning on vga text mode console
SeaBIOS (version pre-0.6.3-20110309_171929-desk4)
PS2 keyboard initialized
Found 1 lpt ports
Found 1 serial ports
ATA controller 0 at 1f0/3f4/0 (irq 14 dev 9)
ATA controller 1 at 170/374/0 (irq 15 dev 9)
DVD/CD [ata1-0: QEMU DVD-ROM ATAPI-4 DVD/CD]
Searching bootorder for: /pci@i0cf8/*@1,1/drive@1/disk@0
Scan for option roms
Running option rom at c900:0003
pnp call arg1=60
pmm call arg1=0
pmm call arg1=2
pmm call arg1=0
Searching bootorder for: /pci@i0cf8/*@3
Searching bootorder for: /rom@genroms/vapic.bin
Running option rom at c980:0003
ebda moved from 9fc00 to 9f400
Returned 53248 bytes of ZoneHigh
e820 map has 6 items:
0: 0000000000000000 - 000000000009f400 = 1
1: 000000000009f400 - 00000000000a0000 = 2
2: 00000000000f0000 - 0000000000100000 = 2
3: 0000000000100000 - 0000000007ffd000 = 1
4: 0000000007ffd000 - 0000000008000000 = 2
5: 00000000fffc0000 - 0000000100000000 = 2
enter handle_19:
NULL
Booting from DVD/CD...
Device reports MEDIUM NOT PRESENT
atapi_is_ready returned -1
Boot failed: Could not read from CDROM (code 0003)
enter handle_18:
NULL
Booting from ROM...
Booting from c900:0336
(qemu)
(qemu) system_reset
(qemu) RESET REQUESTEDChanging serial settings was 0/0 now 3/0
Start bios (version pre-0.6.3-20110309_171929-desk4)
Attempting a hard reboot
prep_reset
apm_shutdown?
i8042_reboot
i8042: wait to write...
i8042: outb
RESET REQUESTED
(qemu)
(qemu)
(qemu)
(qemu) info cpus
* CPU #0: pc=0x00000000fffffff0 thread_id=18125
(qemu) system_reset
(qemu) RESET REQUESTED
(qemu)
(qemu) q
I've tried fiddling a few build options in SeaBIOS but I'm not sure that's where the issue lies. The RESET REQUESTED is me adding some extra debug to vl.c:1477 in the clause that tests for a reset request, and the i8042: lines are debug lines from seabios tracing the execution of the reset request.
This may be a bug in SeaBIOS of course, since I can replicate the behaviour on my distro's qemu and kvm packages. However it seems odd that qemu behaves differently with KVM turned on (i.e. system_reset works) than with it disabled.
A bit of bisection on SeaBIOS shows that commit 244caf86f11f5f65d166d91704f64cb673167abc was the first to exhibit this behaviour. Arguably a SeaBIOS bug, but I don't know enough about the reset process to judge.
This patch to SeaBIOS seems to fix it, but I still think there's a bug in kvm if it behaves differently with or without the "-no-kvm" flag.
qemu 0.12 and newer reboot of FreeBSD (m0n0wall.vmdk http://m0n0.ch/wall/ ) fails.
The Server (IBM xSeries 206), on which i found this "problem", has no kvm support...
finally i decided not to use the IBM server [it is awfully slow when booting, although ubuntu server is really fast available ;-))...but sometimes fails to boot...so i don't use it for production].
I ran several tests and here is my expierence when trying to run m0n0wall.vmdk in qemu:
everything works fine: system starts and can be configured...
BUT, when I tell the system to reboot, it shuts down only until the message rebooting appears...nothing more happens...
i can kill the Vmachine and restart it from commandline, but this is not very handy...
it worked in qemu 0.9 and BOCHS Bios
it always works with kvm: i need to start it as root (sudo kvm), otherwise it also won't reboot.
I tested it with several versions on servers, with kvm-support:
- Ubuntu 10.04 server 32 bit
- Ubuntu 10.04 server 64 bit
- Suse 11.4 32 bit
-seabios 0.5: reboot worked with kvm, but didn't work with qemu (without kvm support)
-seabios 0.6: reboot worked with kvm, but didn't work with qemu (without kvm support)
Hope it helps somebody!
stefan
Sounds like this could have been a duplicate bug of https://bugs.launchpad.net/qemu/+bug/643430 ? If so, it should have been fixed in late 2011. Could you check with the latest version of QEMU / Seabios if the problem still persists?
Hi Thomas, thanks for the triage. I'm a few years past working on this project directly so if it's not affecting anyone else I'd probably just close this bug.
OK, thanks for your response! So let's assume it's the same bug as 643430, i.e. it should be fixed nowadays.
|