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

[Xen-devel] [PATCH 3 of 4] VIOAPIC: Emulate a version 0x20 IOAPIC



Currently, hvm emulates a version 0x11 IOAPIC.  However, depending on
the HVM guests {IO,L}APIC setup, it may take fewer traps into Xen by
directly using the VIOAPIC EOI register present in version 0x20,
rather than resorting to the legacy method of flipping the trigger
mode for the relevent RTE.

Currently, all required functionality is already present in the code,
except that it is covered by VIOAPIC_IS_IOSAPIC which is never defined.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

diff -r 957b5ac44e32 -r 79bc45a90933 xen/arch/x86/hvm/vioapic.c
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -227,11 +227,9 @@ static int vioapic_write(
         vioapic_write_indirect(vioapic, length, val);
         break;
 
-#if VIOAPIC_IS_IOSAPIC
     case VIOAPIC_REG_EOI:
         vioapic_update_EOI(v->domain, val);
         break;
-#endif
 
     default:
         break;
diff -r 957b5ac44e32 -r 79bc45a90933 xen/include/asm-x86/hvm/vioapic.h
--- a/xen/include/asm-x86/hvm/vioapic.h
+++ b/xen/include/asm-x86/hvm/vioapic.h
@@ -31,7 +31,7 @@
 #include <public/hvm/save.h>
 
 #if !VIOAPIC_IS_IOSAPIC
-#define VIOAPIC_VERSION_ID 0x11 /* IOAPIC version */
+#define VIOAPIC_VERSION_ID 0x20 /* IOAPIC version */
 #else
 #define VIOAPIC_VERSION_ID 0x21 /* IOSAPIC version */
 #endif
@@ -45,7 +45,7 @@
 /* Direct registers. */
 #define VIOAPIC_REG_SELECT  0x00
 #define VIOAPIC_REG_WINDOW  0x10
-#define VIOAPIC_REG_EOI     0x40 /* IA64 IOSAPIC only */
+#define VIOAPIC_REG_EOI     0x40
 
 /* Indirect registers. */
 #define VIOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.