IP Library Granted Patent US 8,843,669
Granted Patent B2
US 8,843,669 · App. 13/228,974 · Granted Sep 23, 2014

Guest partition high CPU usage mitigation when performing data transfers in a guest partition

Inventor: Vladimir Pavlov (San Jose, CA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,843,669
App. No.
13/228,974
Granted
Sep 23, 2014
Kind
B2
Abstract

An invention is disclosed for offloading operations, such data transfers, of a guest partition to a host partition. A guest operating system is presented with virtualized resources rather than physical resources—e.g. a guest virtualized processor, guest virtualized memory space, and a guest virtualized direct memory access (DMA) controller. The guest partition can detect the guest operation system attempt to initiate a data transfer, and can instruct the host partition to perform the data transfer. The guest partition need not perform the data transfer using the guest virtual resources. The host partition can perform the data transfer to a remote computing as instructed by the guest partition without copying the data to the host virtualized memory space. The host partition can provide a message to the guest partition indicative of a status of the data transfer.

Claims (34)

1. A system for offloading a data transfer task from a guest partition to a host partition, comprising:

a processor; and

a memory communicatively coupled to the processor when the system is operational, the memory bearing instructions that, upon execution by the processor, cause the system to at least:

determine that the guest partition attempted to instruct virtualized hardware to process a data transfer from a data source location in guest physical memory space of a first virtual machine to a data destination location in physical memory space of a second virtual machine;

send an instruction message from the guest partition to the host partition indicative of the data transfer;

cause the host partition to process the data transfer; and

send a message from the host partition to the guest partition indicative of a status of the data transfer.

2. The system of claim 1 , wherein the data source location is a location in the guest partition physical address.

3. The system of claim 1 , wherein the data destination location is a location outside the virtualized hardware.

4. The system of claim 1 , wherein the data transfer is a direct memory access (DMA) transfer.

5. The system of claim 1 , wherein the instruction message compromises a read, write, or data copy operation, type and amount of data to be transferred, the source location, and the destination location.

6. The system of claim 1 , wherein data to be transferred is contained in one memory location in the virtualized hardware.

7. The system of claim 1 , wherein the host partition performs the data transfer using one or more virtual processors, one or more virtual DMA controllers, or one or more virtual devices with DMA capability.

8. The system of claim 1 , wherein the host partition performs the data transfer using physical processors, physical DMA controllers, or physical devices with DMA capability.

9. A method for offloading a data transfer task from a guest partition to a host partition, comprising:

determining that the guest partition attempted to instruct virtualized hardware to process a data transfer from a data source location in physical memory space of a first virtual machine to a data destination location in physical memory space of a second virtual machine;

sending an instruction message from the guest partition to the host partition indicative of the data transfer;

causing the host partition to process the data transfer; and

sending a message from the host partition to the guest partition indicative of a status of the data transfer.

10. The method of claim 9 , wherein the data source location is a location in the guest partition physical address and the data destination location is a location outside the virtualized hardware.

11. The method of claim 9 , wherein the data transfer is a direct memory access (DMA) transfer.

12. The method of claim 9 , wherein the instruction message compromises a read, write, or data copy operation, type and amount of data to be transferred, the source location, and the destination location.

13. The method of claim 9 , wherein data to be transferred is contained in one memory location of the virtualized hardware.

14. The method of claim 9 , wherein the host partition performs the data transfer using physical processors, physical DMA controllers, or physical devices with DMA capability.

15. A computer-readable storage medium for offloading a data transfer task from a guest partition to a host partition, bearing computer instructions that, upon execution on a computer, cause the computer to perform operation comprising:

determining that the guest partition attempted to instruct virtualized hardware to process a data transfer from a data source location associated with a first virtual machine to a data destination location associated with a second virtual machine;

sending an instruction message from the guest partition to the host partition indicative of the data transfer;

causing the host partition to process the data transfer; and

sending a message from the host partition to the guest partition indicative of a status of the data transfer.

16. The computer-readable storage medium of claim 15 , wherein the data source location is a location in the guest partition physical address and the data destination location is a location outside the virtualized hardware.

17. The computer-readable storage medium of claim 15 , wherein data to be transferred is contained in one memory location in the virtualized hardware.

18. The computer-readable storage medium of claim 15 , wherein the instruction message compromises a read, write, or data copy operation, a data source location, and an amount of data to be processed.

19. The computer-readable storage medium of claim 15 , wherein the instruction message compromises a read, write, or data copy operation, type and amount of data to be transferred, the source location, and the destination location.

20. The computer-readable storage medium of claim 15 , wherein the host partition performs the data transfer using physical processors, physical DMA controllers, or physical devices with DMA capability.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: PAVLOV, VLADIMIR
To: MICROSOFT CORPORATION
Reel/Frame 026881/0308 →
Continuity (1)
Related Publication 20130067122A1 · Mar 14, 2013