• Michael S. Tsirkin's avatar
    kvm/x86: implement hv EOI assist · b63cf42f
    Michael S. Tsirkin authored
    It seems that it's easy to implement the EOI assist
    on top of the PV EOI feature: simply convert the
    page address to the format expected by PV EOI.
    
    Notes:
    -"No EOI required" is set only if interrupt injected
     is edge triggered; this is true because level interrupts are going
     through IOAPIC which disables PV EOI.
     In any case, if guest triggers EOI the bit will get cleared on exit.
    -For migration, set of HV_X64_MSR_APIC_ASSIST_PAGE sets
     KVM_PV_EOI_EN internally, so restoring HV_X64_MSR_APIC_ASSIST_PAGE
     seems sufficient
     In any case, bit is cleared on exit so worst case it's never re-enabled
    -no handling of PV EOI data is performed at HV_X64_MSR_EOI write;
     HV_X64_MSR_EOI is a separate optimization - it's an X2APIC
     replacement that lets you do EOI with an MSR and not IO.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b63cf42f
x86.c 190 KB