发明名称 |
Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU |
摘要 |
A method and system for managing direct memory access (DMA) in a computer system without a host input/output memory management unit (IOMMU). The computer system hosts virtual machines and allows memory overcommit. The computer receives, from a guest operating system that runs on a virtual machine, a request for mapping a guest address to a bus address. The computer translates the guest address to a host address and pins a memory page containing the host address to keep the memory page in host memory. The host address is then returned to the guest operating system to allow a device to use the host address as the bus address for direct memory access (DMA) to a buffer managed by the guest operating system. |
申请公布号 |
US8954959(B2) |
申请公布日期 |
2015.02.10 |
申请号 |
US201012883576 |
申请日期 |
2010.09.16 |
申请人 |
Red Hat Israel, Ltd. |
发明人 |
Tsirkin Michael;Wright Christopher M. |
分类号 |
G06F9/455;G06F9/46;G06F13/28;G06F9/34;G06F12/10 |
主分类号 |
G06F9/455 |
代理机构 |
Lowenstein Sandler LLP |
代理人 |
Lowenstein Sandler LLP |
主权项 |
1. A method comprising:
receiving, by a processing device, a request from a guest operating system to translate a guest device identifier and a guest address to a bus address, the guest operating system being run on one of a plurality of virtual machines hosted by the processing device, wherein the bus address is a physical address associated with a hardware device; translating the guest device identifier and the guest address to a host device identifier and a host address; pinning a memory page comprising the host address to keep the memory page in host memory; mapping the bus address to the host address; recording, in an emulated input/output memory management unit (IOMMU), a guest mapping comprising the guest device identifier associated with a pair of the bus address and the guest address; returning the host address to the guest operating system as a requested bus address for direct memory access (DMA) to a buffer managed by the guest operating system; and removing the mapping from the emulated IOMMU after the hardware device completes the DMA, wherein the processing device does not have or does not have control of a host IOMMU. |
地址 |
Raanana IL |