blob: 72a3f3d84687f9dcbab433ee0b8bcaa234e1b68b (
plain) (
blame)
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
|
qemu-system-ppc64 smp crash on manual reset
Host Environment:
x86_64 Linux v5.0.2
QEMU emulator version 4.0.50 (v4.0.0-354-g812b835fb4)
SLOF:
Build Date = Jan 14 2019 18:00:39
FW Version = git-a5b428e1c1eae703
Problem: Qemu crash immediately after a manual reset
(this is not the initial reset which launches the guest).
Steps:
1. Download Debian ppc64el mini.iso:
http://ftp.debian.org/debian/dists/sid/main/installer-ppc64el/current/images/netboot/mini.iso
2. Run qemu on the host. Ensure that it runs with more than one CPUs. With a single CPU, I was unable
to reproduce the crash.
qemu-system-ppc64 -M pseries -cpu power9 -smp 2 -m 512 -cdrom mini.iso
3. SLOF prints the version info on the serial device, and proceeds to boot.
4. After a few seconds, the GRUB menu appears on the VGA screen.
5. Select one of the install options (I have tested with Default and Expert), and wait
for the Debian's text-mode installer (blue-gray-red) screen to appear.
6. Click Machine->Reset (or enter system_reset on the qemu monitor).
7. Notice that, on the serial device, SLOF has printed the version info. That is, the system
has reset and is attempting to boot again.
8. On the host cmd prompt, qemu dies after printing this fatal error and spewing the
contents of the CPU registers:
qemu: fatal: Trying to deliver HV exception (MSR) 70 with no HV support
<CPU contents> (See attached out.txt for details)
Aborted (core dumped)
The HV exception is either
(a) 70 = HISI, which occurs when NIP contains an outright bogus or inaccessible value, or
(b) 69 = HDSI, which occurs when NIP happens to contain a somewhat saner value, and
the cpu attempts to run the instruction at that address.
The exception can occur on either of the CPUs. It occurs when qemu is running the SLOF
code.
|