Page 1 of 1

x2apic in qemu

Posted: Sun Jan 01, 2017 5:32 pm
by bzt
Has anybody tried to emulate x2apic with qemu? I can't get it working.

With TCG, I got this:

Code: Select all

qemu-system-x86_64 -m 32 -d guest_errors -hda bin/disk.dd -cpu IvyBridge,+x2apic -monitor stdio
QEMU 2.8.50 monitor - type 'help' for more information
(qemu) warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
My host cpu supports it, so I've tried KVM:

Code: Select all

qemu-system-x86_64 -m 32 -d guest_errors -hda bin/disk.dd -enable-kvm -cpu host,+x2apic -monitor stdio
QEMU 2.8.50 monitor - type 'help' for more information
(qemu)
No errors this time, but the guest's eax=1 cpuid returns ecx 21 bit clear, no matter what I do.

I've checked qemu's source, and I've found a stupid patch that silently disables x2apic when irqchip is not used, so I've tried

Code: Select all

qemu-system-x86_64 -m 32 -d guest_errors -hda bin/disk.dd -enable-kvm -machine kernel-irqchip=off -cpu host,+x2apic -monitor stdio
QEMU 2.8.50 monitor - type 'help' for more information
(qemu) warning: host doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
which failed as expected. Now with irqchip:

Code: Select all

qemu-system-x86_64 -m 32 -d guest_errors -hda bin/disk.dd -enable-kvm -machine kernel-irqchip=on -cpu host,+x2apic -monitor stdio
QEMU 2.8.50 monitor - type 'help' for more information
(qemu)
No errors, but guest cpuid reports no x2apic...

I'm not sure where else to check if kernel-irqchip is used at all, all I've got is irqbypass:

Code: Select all

# lsmod | grep kvm
kvm_intel             188416  0
kvm                   516096  1 kvm_intel
irqbypass              16384  1 kvm
Any help would be appreciated, I'd really wanna use x2apic!

Re: x2apic in qemu

Posted: Sun Oct 01, 2017 9:06 am
by SukantPal
I have also tried to use the X2APIC feature for IA32 architecture. But, QEMU simply doesn't support this feature right now as I have seen. Even, the QEMU message says that X2APIC feature is not supported.