A virtual machine system can run multiple conventional operating systems (OSs) in a single real host computer A virtual machine is a logical computer with almost the same architecture as the host, and may contain several logical processors. A hypervisor is a control program to control this virtual machine system. Traditionally, the hypervisor has to receive an I/O interrupt pending for a waiting logical processor, and to simulate the I/O interrupt, consequently incurring the simulation overhead of the I/O interrupt. To avoid this overhead we present a new method which introduces a new self-wait state different from the conventional wait state, presents a new instruction for the hypervisor to detect the I/O interrupts pending for the logical processors in the self-wait state, and dispatches those logical processors on the detection ahead of the ready queue. This new method has eliminated the simulation overhead of those I/O interrupts, and enhanced the system performance to the near native.
Citation:
Hidenori Umeno, Masato Kiyama, Takafumi Fukunaga, Takashige Kubo, "New Method for Dispatching Waiting Logical Processors in Virtual Machine Systems," compsac, vol. 1, pp.551-560, 29th Annual International Computer Software and Applications Conference (COMPSAC'05) Volume 1, 2005