As virtualization technology becomes pervasive there is a continuing demand to increase the performance of guest virtual machines. Many hardware virtualization techniques, such as nested paging and IOMMU, have already been developed to accelerate the guest virtual machines frequent operations in different areas. However, one area that has not yet been addressed is the handling of interrupts in a virtual machine environment.
This presentation talks about the design of AMD virtual interrupt controller (AVIC). The AVIC architecture addresses the overhead of interrupt processing in a virtualized environment by applying hardware acceleration to three major components of interrupt processing: 1) Delivery of interrupts directly from I/O devices to a guest operating system; 2) Interprocessor interrupts between the virtual CPUs in a guest; 3) Local APIC accesses by guest operating systems.