IP Library Granted Patent US 10,140,141
Granted Patent B2
US 10,140,141 · App. 15/037,353 · Granted Nov 27, 2018

Measuring accumulated load values of first level and second level virtual machines for modifying resource allocation

Inventor: Yoshifumi Nakamura (Tokyo, JP)
Assignee: Hitachi, Ltd.
G06F9/45558G06F9/45533G06F9/5077G06F11/301G06F11/3051G06F11/3433G06F11/3495G06F2009/45591
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 10,140,141
App. No.
15/037,353
Granted
Nov 27, 2018
Kind
B2
Abstract

A computer includes: a host VM monitor configured to operate on a physical processor and generate a logical processor that operates a first-level VM; and a guest VM monitor configured to operate on the logical processor and generate a plurality of virtual processors that operates a plurality of second-level VMs generated on the first-level VM. The host VM monitor includes management information that correlates control information which is unique to each of the second-level VMs and which the host VM monitor can acquire in a period from the start to the end of execution of the second-level VM with a second-level VM identifier for specifying the second-level VM. The host VM monitor specifies a second-level VM, based on a second-level VM identifier corresponding to the control information of the second-level VM, which has been acquired, in the management information and acquires information on a load of the second-level VM.

Claims (36)

1. A computer executing operation of two-level virtual machines (VMs), comprising:

a physical processor; and a memory coupled to the physical processor and storing instructions that, when executed by the physical processor, cause the physical processor to execute a host VM monitor,

wherein the host VM monitor is configured to operate on the physical processor and generate a logical processor that operates a first-level VM,

wherein a guest VM monitor is configured to operate on the logical processor and generate a plurality of virtual processors that operate a plurality of second-level VMs generated on the first-level VM,

wherein the host VM monitor is further configured to store management information that correlates a first-level VM identifier specific to the first-level VM and a plurality of control information specific to the respective second-level VMs,

wherein each of the second-level VMs, upon respective activation, is configured to operate an agent to issue a MOV instruction to store a respective second-level VM identifier of the respective second-level VM in a register of the physical processor, and operate the agent to issue a CPUID instruction with respect to the host VM monitor,

wherein the host VM monitor is further configured to, upon receiving the CPUID instruction from the agent of the respective second-level VM, read the respective second-level identifier from the register and store the respective second-level identifier in correlation with the control information specific to the respective second-level VM which issued the CPUID instruction in the management information,

wherein the host VM monitor is further configured to calculate a plurality of accumulated load values for execution periods of the first-level VM and accumulate a period from activating to exiting of the respective second-level VM based on the control information specific to the respective second-level VM stored in a predetermined area of the physical processor different from the register and correlate the accumulated load values with the respective second-level identifier in the management information to determine a load of the respective second-level VM on the physical processor,

wherein the host VM monitor is further configured to, for each of the first-level VM and the second-level VMs on every predetermined period, compare the accumulated load values of the first-level VM and the second-level VM with a predetermined threshold, and

modify the allocation of the logical processor or the virtual processors to the first-level VM or the second-level VMs based on the comparison result.

2. The computer according to claim 1 , wherein the control information includes virtual machine control structure (VMCS) pointers or virtual machine control block (VMCB) pointers of the respective second-level VMs.

3. The computer according to claim 1 , wherein:

the host VM monitor is further configured to store the first-level VM identifier specific to the first-level VM and the control information in the management information in advance of storing the second-level VM identifiers, and the second-level VMs are configured to be activated thereafter.

4. The computer according to claim 1 , wherein the guest VM monitor is configured to store the control information specific to the respective second-level VM in a predetermined area of the logical processor and issue a VMPTRLD instruction to the host VM monitor, and the host VM monitor is configured to transfer the control information specific to the respective second-level VM from the predetermined area of the logical processor to the predetermined area of the physical processor.

5. The computer according to claim 1 , wherein the CPUID instruction generates a virtualization exception with respect to the host VM monitor.

6. The computer according to claim 1 , wherein the host VM monitor is further configured to manage a load of the first-level VM and modify an allocation of the logical processor and the virtual processors to the first-level VM and the second-level VMs based on the loads of the first-level VM and the second-level VMs.

7. The computer according to claim 6 , wherein the host VM monitor is further configured to modify the allocation of the logical processor or the virtual processors to the first-level VM or the second-level VMs by sending a request to a management computer.

8. The computer according to claim 1 , wherein the guest VM monitor directly manages operation of the second-level VMs.

9. The method according to claim 1 , wherein the CPUID instruction generates a virtualization exception with respect to the host VM monitor.

10. A load measurement method in a computer executing operation of two-level virtual machines (VMs), the method comprising:

operating a host VM monitor on a physical processor to generate a logical processor that operates a first-level VM;

operating a guest VM monitor on the logical processor to generate a plurality of virtual processors that operate a plurality of second-level VMs generated on the first-level VM; and

storing, by the host VM monitor, management information that correlates a first-level VM identifier specific to the first-level VM and a plurality of control information specific to the second-level VMs;

upon activation of each of the second-level VMs, issuing, by an agent of the respective second-level VM, a MOV instruction to store a respective second-level VM identifier of the respective second-level VM in a register of the physical processor, and issuing, by the agent of the respective second-level VM a CPUID instruction with respect to the host VM monitor,

upon receiving the CPUID instruction from the agent of the respective second-level VM, reading, by the host VM monitor, the respective second-level identifier from the register and storing, by the host VM monitor, the respective second-level identifier in correlation with the control information specific to the respective second-level VM which issued the CPUID instruction in the management information,

calculating, by the host VM monitor, a plurality of accumulated load values for execution periods of the first-level VM,

accumulating, by the host VM monitor, a period from activating to exiting of the respective second-level VM based on the control information specific to the respective second-level VM stored in a predetermined area of the physical processor different from the register and correlate the accumulated load values with the respective second-level identifier in the management information to determine a load of the respective second-level VM on the physical processor,

comparing, by the host VM monitor, for each of the first-level VM and the second-level VMs on every predetermined period, the accumulated load values of the first-level VM and the second-level VM with a predetermined threshold, and

modifying, by the host VM monitor, the allocation of the logical processor or the virtual processors to the first-level VM or the second-level VMs based on the comparison result.

11. The method according to claim 10 , wherein the control information includes virtual machine control structure (VMCS) pointers or virtual machine control block (VMCB) pointers of the respective second-level VMs.

12. The method according to claim 10 , further comprising:

storing, by the host VM monitor, the first-level VM identifier specific to the first-level VM and the control information in the management information in advance of storing the second-level VM identifiers, and activating the respective second-level VM thereafter.

13. The method according to claim 10 , further comprising:

storing, by the guest VM monitor, the control information specific to the respective second-level VM in a predetermined area of the logical processor;

issuing, by the guest VM monitor, a VMPTRLD instruction to the host VM monitor; and

transferring, by the host monitor, the control information specific to the respective second-level VM from the predetermined area of the logical processor to the predetermined area of the physical processor.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: NAKAMURA, YOSHIFUMI
To: HITACHI, LTD.
Reel/Frame 038742/0385 →
Continuity (1)
Related Publication 20170004002A1 · Jan 5, 2017