x2APIC在Native环境下是个硬件特性,早已被kernel支持,内核提供一些参数来控制x2APIC
http://support.novell.com/techcenter/sdb/en/2002/10/81_acpi.html
可通过下面命令确认
cat /proc/cpuinfo | grep x2apic
dmesg | grep x2apic
xAPIC模式下,APIC寄存器被映射到4KB大小的内存区,因此访问APIC是通过MMIO;
x2APIC模式下,一部分MSR地址区间为APIC寄存器预留,访问APIC是通过MSR。
QEMU/KVM可以模拟x2APIC给GuestOS,Fedora13开始就支持HOST和Guest的x2APIC http://fedoraproject.org/wiki/Features/Virtx2apic
使用方法:-cpu qemu64,x2apic
例如: qemu-kvm -enable-kvm -m 1024 -nographic -drive file=/mnt/sdb/vms/testfc/testfc.qcow2,if=virtio,index=0,format=qcow2 -cpu qemu64,+x2apic
然后进入guest os确认:
# cat /proc/cpuinfo | grep x2apic flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm up rep_good nopl pni cx16 x2apic popcnt hypervisor lahf_lm # dmesg | grep x2apic [ 0.029343] Enabling x2apic [ 0.029347] Enabled x2apic [ 0.029543] Switched APIC routing to physical x2apic