| US 7,613,847 B2 | ||
| Partially virtualizing an I/O device for use by virtual machines | ||
| Todd J. Kjos, Cupertino, Calif. (US); Jonathan K. Ross, Bellevue, Wash. (US); and Christophe De Dinechin, Sophia-Antipolis (France) | ||
| Assigned to Hewlett-Packard Development Company, L.P., Houston, Tex. (US) | ||
| Filed on May 16, 2006, as Appl. No. 11/435,831. | ||
| Prior Publication US 2008/0005297 A1, Jan. 03, 2008 | ||
| Int. Cl. G06F 13/28 (2006.01); G06F 21/00 (2006.01) | ||
| U.S. Cl. 710—22 [711/6] | 12 Claims |

| 1. A computer system comprising:
a physical computer;
a virtual machine monitor executable on the physical computer and configured to create an emulation of at least one guest
operating system adapted to control the physical computer, the virtual machine monitor comprising:
a Peripheral Communication Interconnect (PCI) configuration emulator that calls a function registered by a corresponding device
emulator to manage configuration space accesses or forwards a configuration space access to a PCI configuration driver for
unregistered or selectively non-emulated functions;
a direct input/output (I/O) emulator that manages direct I/O functionality in the virtual machine monitor; and
an input/output discovery emulator that determines whether an I/O device exists at an address corresponding to a guest access
at a physical address that does not correspond to memory by sending a message to a virtual I/O map driver in the host; and
a host executable on the physical computer that manages physical resources coupled to the physical computer on behalf of the
virtual machine monitor and the at least one guest operating system, the host adapted to virtualize a Peripheral Component
Interconnect (PCI) configuration address space whereby the at least one guest operating system controls PCI input/output (I/O)
devices directly and in absence of I/O emulation for memory-mapped I/O registers and I/O port registers, and emulates accesses
to configuration space.
|