Check out the new USENIX Web site. next up previous
Next: Send combining Up: Reducing Network Virtualization Overheads Previous: Reducing Network Virtualization Overheads

Handling I/O ports in the VMM

Recall that the only virtual I/O accesses that require a world switch to the host are the ones that require a physical I/O device access. The vast majority of the I/O instructions are accesses to the Lance data port and only a third of them trigger packet transmissions. The remaining accesses merely modify the state of the virtual Lance data port, which can be easily done directly in the VMM without a world switch. Thus, an emulation of an OUT instruction that does not require real I/O can now be achieved in less than a tenth of the time it takes in VMware Workstation 2.0. We also further reduce the cost of processing I/O accesses to the Lance address port by taking advantage of the property that the Lance address register has memory semantics, i.e., reads and writes have no side effects and only latch the last value written. Thus, even though the instructions to access it are privileged instructions, the VMM can treat them as simple MOV instructions that happen to store to a special location. This allows the VMM to strip away several layers of virtualization and reduce the handling of the accesses to a handful of instructions.
next up previous
Next: Send combining Up: Reducing Network Virtualization Overheads Previous: Reducing Network Virtualization Overheads
Beng-Hong Lim 2001-05-01