Opened 8 years ago

Closed 8 years ago

Last modified 10 months ago

#7692 closed bug (fixed)

Haiku Crashes in Qemu with Pentium 1, 2 or 3 CPU models

Reported by: tonestone57 Owned by: mmlr
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: x86


A3 RC 42159

Haiku goes to KDL when trying to boot anyboot image with cdrom option (as LiveCD) in Qemu. Happens if CPU type is set to Pentium, Pentium 2 or Pentium 3.

Command used: qemu -cpu pentium2 -m 256 -cdrom haiku-alpha-anyboot.image

Tested with Qemu 0.9.1 on Linux and Qemu 0.11.1 on Windows. I do not believe this affects Atom, Athlon or newer CPU types in Qemu. Alpha2 ISO works without crashing.

Anyboot LiveCD is not likely to work on Pentium 1-3 until this ticket gets fixed. I dl images so cannot test changes to trunk until nightly is back up. Please close ticket when you fix and test it yourself.

Attachments (2)

Screenshot1.png (50.1 KB) - added by tonestone57 8 years ago.
Haiku Crash in Qemu
serial-out1.txt (14.8 KB) - added by tonestone57 8 years ago.
Serial Out - Qemu 0.11.1

Download all attachments as: .zip

Change History (8)

Changed 8 years ago by tonestone57

Attachment: Screenshot1.png added

Haiku Crash in Qemu

comment:1 Changed 8 years ago by tonestone57

Summary: Haiku Crashes in Qemu when using Pentium 1-3, CPU typesHaiku Crashes in Qemu with Pentium 1, 2 or 3 CPU models

Some further testing with Qemu 0.11.1 (Windows) showed that Haiku freezes after 3rd boot image is lit up. On 0.9.1 it crashes to KDL but I believe the same Haiku bug is happening on both versions of Qemu.

It only happens when using Pentium 1, 2 or 3 CPU models. Works with Athlon, N270 & Core Duo models.

I disabled IO-APIC & local APIC in safe-mode and Pentium 2 Qemu booted. Issue on 0.11.1 seems to relate to APIC. I believe this could be true for 0.9.1 but have to confirm because not sure yet if dealing with 1 bug or 2 bugs here.

Going to upload serial-out for 0.11.1

Changed 8 years ago by tonestone57

Attachment: serial-out1.txt added

Serial Out - Qemu 0.11.1

comment:2 Changed 8 years ago by diver

Blocking: 7665 added

comment:3 Changed 8 years ago by mmlr

Owner: changed from axeld to mmlr
Status: newassigned

The reason is rather simple: QEMU just unsets the APIC support bit in the CPU ID features but still emulates the actual APIC and IO-APIC hardware. Also the ACPI tables still include the full APIC info, which I'd classify as a QEMU bug (since it describes local APICs that wouldn't actually be present on the CPU if it didn't support local APICs). In any case, the local APIC init (or enumeration) should check the CPU features for the APIC feature before moving on. I'll look into that.

comment:4 Changed 8 years ago by tonestone57

Ok, thanks Michael. If only a Qemu bug then no rush to fix it. I was worried that same thing may happen to real Pentium 2 or 3 hardware.

Confirmed that disabling APIC on Qemu 0.9.1 (Linux) allows A3 RC to boot. No worries. I can disable APIC for now when booting Haiku in Qemu and wait to see if you can fix the issue. I mostly use VirtualBox anyways. Qemu is only for testing out different CPU models to see if they still work in Haiku.

comment:5 Changed 8 years ago by mmlr

Resolution: fixed
Status: assignedclosed

At least the APIC part is fixed in hrev42215. Note that this will also disable SMP support for such emulated hardware. QEMU is just inconsistent there, it actually enables the APIC emulation when you tell it to emulate an SMP system, but doesn't switch the APIC support bit back on. In any case this should fix the boot issue.

comment:6 Changed 10 months ago by waddlesplash

Blocking: 7665 removed
Note: See TracTickets for help on using tickets.