qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] OSX guest vs. kvm ioapic polarity


From: Gabriel L. Somlo
Subject: Re: [Qemu-devel] OSX guest vs. kvm ioapic polarity
Date: Thu, 30 Jan 2014 10:56:11 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Jan 30, 2014 at 12:13:59AM +0100, Alexander Graf wrote:
> Can you check whether it configures the ioapic differently?

I poked around hw/i386/kvm/ioapic.c, looking for a few good spots
to add printf statements. These should be spots where calls from
the guest are handled, not where QEMU itself sets up before starting
the guest, as I expect the latter is all the same regardless.

kvm_ioapic_set_irq() seemed like a good candidate. When starting
(without the kvm kernel-side patch), OS X logs the following, before
it hangs:

kvm_ioapic_set_irq(opaque=0x7f2480a71d10, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f2480a71d10, irq=16, level=1)
kvm_ioapic_set_irq(opaque=0x7f2480a71d10, irq=17, level=1)
kvm_ioapic_set_irq(opaque=0x7f2480a71d10, irq=18, level=1)
kvm_ioapic_set_irq(opaque=0x7f2480a71d10, irq=16, level=1)

Fedora (which works fine) looks like this:

kvm_ioapic_set_irq(opaque=0x7f42ced4cae0, irq=16, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=17, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=18, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=1)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=1)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=1)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=0)
kvm_ioapic_set_irq(opaque=0x7f4c5516eae0, irq=16, level=1)
... (and so on, with irq 16, alternating levels between 0 and 1).

With the kernel irqlevel patch, Fedora looks identical.
OS X (which now works), looks like this:

kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=16, level=1)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=16, level=0)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=1)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=19, level=0)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=16, level=1)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=16, level=0)
kvm_ioapic_set_irq(opaque=0x7f6d27baad10, irq=16, level=1)
... (again, alternating levels and irq-16 only from here on out).

I'm not sure how useful this is, or what info from which other
kvm/ioapic method I could log during guest boot...

--G



reply via email to

[Prev in Thread] Current Thread [Next in Thread]