IP Library › Granted Patent US 8,621,458
Granted Patent B2
US 8,621,458 · App. 11/018,337 · Granted Dec 31, 2013

Systems and methods for exposing processor topology for virtual machines

Inventors: Eric P. Traut (Bellevue, WA); Rene Antonio Vega (Kirkland, WA)
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,621,458
App. No.
11/018,337
Granted
Dec 31, 2013
Kind
B2
Abstract

The present invention is directed to making a guest operating system aware of the topology of the subset of host resources currently assigned to it. At virtual machine boot time a Static Resource Affinity Table (SRAT) will be used by the virtualizer to group guest physical memory and guest virtual processors into virtual nodes. Thereafter, in one embodiment, the host physical memory behind a virtual node can be changed by the virtualizer as necessary, and the virtualizer will provide physical processors appropriate for the virtual processors in that node.

Claims (26)

1. A method for optimizing performance of an operating system executing on a guest computer system comprising a virtual machine on a host computer system, the method comprising:

continuously executing the operating system in the guest computer system, the guest computer system having a virtual processor topology;

during the continuous execution of the operating system, determining a change to a resource allocated by the host computer system to the guest computer system, the change in the resource causing a change in the virtual processor topology; and

thereafter, during the continuous execution of the operating system, updating the operating system with an update based on the change in the virtual processor topology, the operating system scheduling the use of virtual processor resources based on the change in the virtual processor topology during the execution of the operating system.

2. The method of claim 1 , wherein updating the operating system is accomplished by a virtualizer associated with the virtual machine that directly updates the at least one internal table of the operating system.

3. The method of claim 1 , wherein updating the operating system is accomplished by a virtualizer associated with the virtual machine updating a shared memory location with a disclosure, and the operating system subsequently accessing the shared memory location, retrieving the disclosure, and applying the disclosure.

4. The method of claim 3 wherein the guest operating system subsequently accessing the shared memory location is performed in accordance with a schedule or is performed in response to an interrupt generated by an emulator in the virtual machine.

5. The method of claim 3 , wherein the operating system provides a hint to the virtualizer by updating a shared memory location with a hint, and the virtualizer subsequently accessing the shared memory location, retrieving the hint, and applying the hint.

6. The method of claim 1 , implemented by a hardware control device, the hardware control device comprising means for implementing each element of the method.

7. A computer-readable storage medium comprising computer-readable instructions that upon execution by a computing device cause a virtualizer to:

determine that a physical resource has changed during the execution of a guest operating system operating on the computing device; and

update the guest operating system, the guest operating system operating on a guest computer system including a virtual machine having a virtual processor topology, after startup and during execution with an update to reflect a change in a virtual processor topology without the need to reboot the guest operating system.

8. The computer-readable medium of claim 7 , further comprising instructions that, upon execution by the computing device, cause updating the operating system to be accomplished by the virtualizer associated with the virtual machine providing disclosure data directly to a internal table of the guest operating system.

9. The computer-readable medium of claim 7 , further comprising instructions that, upon execution by the computing device, cause the updating to be accomplished by a virtualizer associated with the virtual machine updating a shared memory location with a disclosure, and the guest operating system subsequently accessing the shared memory location, retrieving the disclosure, and applying the disclosure.

10. The computer-readable medium of claim 9 , further comprising instructions that, upon execution by the computing device, cause the guest operating system to access the shared memory location in accordance with a schedule or in response to an interrupt generated by an emulator in the virtual machine.

11. The computer-readable medium of claim 9 , further comprising instructions that, upon execution by the computing device, cause the guest operating system to provide a hint to the virtualizer by updating a shared memory location with a hint, and the virtualizer subsequently accessing the shared memory location, retrieving the hint, and applying the hint.

12. A system for optimizing performance of guest operating system executing on a computer system, the computer system comprising:

a computing device comprising a processor; and

a memory in communication with the computing device when the system is operational, the memory having stored thereon computer readable instructions that when executed by the processor in the computing device cause:

a virtualizer to determine that a system resource has changed during the operation of the guest operating system; and

based on the change, cause a change to a virtual processor topology, by updating a guest operating system after startup and during execution of the guest operating system with an update to reflect a change in the virtual processor topology without stopping the execution of the guest operating system to update the operating system.

13. The system of claim 12 , wherein the virtual processor topology change is based on changes to a set of resources dynamically allocated by a host computer system.

14. The system of claim 13 , further comprising wherein the virtualizer provides disclosure data directly to an internal table of the guest operating system.

15. The system of claim 13 , further comprising wherein the virtualizer provides disclosure data to a shared memory location, and the guest operating system subsequently accesses the shared memory location, retrieves the disclosure, and applies the disclosure.

16. The system of claim 15 , further comprising instructions that when executed cause the operating system to subsequently access the shared memory location in accordance with a schedule or in response to an interrupt generated by an emulator in the virtual machine.

17. The system of claim 15 , further comprising instructions that when executed cause the guest operating system to provide a hint to the virtualizer by updating the shared memory location with the hint, and the virtualizer subsequently accessing the shared memory location, retrieving the hint, and applying the hint.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2005
From: TRAUT, ERIC P.; VEGA, RENE ANTONIO
To: MICROSOFT CORPORATION
Reel/Frame 015597/0707 →
Continuity (1)
Related Publication 20060136653A1 · Jun 22, 2006