IP Library Granted Patent US 8,219,990
Granted Patent B2
US 8,219,990 · App. 12/473,436 · Granted Jul 10, 2012

Techniques for managing virtual machine (VM) states

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,219,990
App. No.
12/473,436
Granted
Jul 10, 2012
Kind
B2
Abstract

Techniques for managing virtual machine (VM) states are provided. Applications executing within a processing context of a VM communicate outside that processing context with a hypervisor or VM Monitor (VMM) to have the hypervisor perform host operations for the VM.

Claims (30)

1. A processor-implemented method residing in a machine-readable storage medium and to execute on a processor, the method, comprising:

receiving, by the processor, a request to save a state of a Virtual Machine (VM), the request received within a processing context of the VM and the request sent from a helper process processing on the VM and the helper process does not wait for response to sending the request, the request sent asynchronously and processed asynchronously by the processor;

passing, by the processor, the request to a hypervisor that executes on the processor outside the processing context of the VM;

detecting, by the processor, an event raised by the hypervisor indicating the state was saved for the VM; and

notifying, by the processor, one or more VM applications executing within the processing context of the VM that the state was saved for the VM.

2. The method of claim 1 , wherein receiving further includes receiving the request from a particular one of the one or more VM applications within the processing context of the VM, the particular one of the one or more VM applications is the helper process.

3. The method of claim 1 , wherein passing further includes writing the request to a predefined memory region allocated to the VM that the hypervisor monitors.

4. The method of claim 1 , wherein passing further includes one of:

writing the request to a predefined port of the processor that the hypervisor listens on for communication coming from within the processing context of the VM; and

writing the request to a virtual Input/Output (I/O) port of the VM that is accessible to the hypervisor outside the processing context of the VM.

5. The method of claim 1 , wherein passing further includes including credentials with the request passed to the hypervisor that the hypervisor uses to authenticate the request to save the state of the VM.

6. The method of claim 1 , wherein passing further includes asynchronously passing the request to the hypervisor and returning control back to the VM while the hypervisor processes the request.

7. The method of claim 1 , wherein detecting further includes dynamically listening for the event on one of the following: a virtual port of the VM that is accessible to the hypervisor, a predefined port that the hypervisor writes the event to; and a predefined memory region of the VM that the hypervisor has access to write the event to.

8. A machine-implemented system, comprising:

a Virtual Machine (VM) application implemented in a computer-readable storage medium and to execute on one or more processors within an internal processing context of a VM; and

a VM helper process implemented in a computer-readable storage medium and to execute on the one or more processors within the internal processing context of the VM;

wherein the VM application is configured to asynchronously issue a request to save a VM state to the VM helper process, the VM helper process is configured to asynchronously communicate outside the internal processing context of the VM with a VM Monitor (VMM) to have the VMM asynchronously save the state of the VM on behalf of the VM application.

9. The system of claim 8 , wherein the VM application registers with the VM helper process to receive notifications from the VMM for the VM.

10. The system of claim 8 , wherein the VM helper process is to communicate with the VMM via one or more of the following: a reserved portion of memory or storage reserved for the VM, a virtual Input/Output (I/O) port that the VMM has access to, and a predefined designated port that the VMM monitors.

11. The system of claim 8 , wherein the VM application is configured to pass credentials to the VM helper process that the VM helper process communicates to the VMM and that the VMM uses to authenticate the VM application before saving the state on behalf of the VM application of the VM.

12. The system of claim 8 , wherein the VM helper process is configured to asynchronously communicate with the VMM.

13. The system of claim 8 , wherein the VM helper process is configured to notify the VM application when the VM helper process receives notice that the VMM has saved the state of the VM on behalf of the VM application.

14. A machine-implemented system, comprising

a Virtual Machine (VM) implemented in a computer-readable storage medium and to execute on one or more processors; and

a hypervisor implemented in a computer-readable storage medium and to execute on the one or more processors;

wherein the hypervisor is configured to expose selective portions of its Application Programming Interface (API) to a VM helper process that executes inside a processing context of the VM, the hypervisor further configured to asynchronously perform one or more operations from the API on behalf of the VM helper process and asynchronously communicate results of performing those operations to the VM helper process.

15. The system of claim 14 , wherein the hypervisor is configured to restore the VM to a previously saved state when processing a select one of the operations on behalf of the VM helper process.

16. The system of claim 14 , wherein the hypervisor is configured to reconfigure the VM in response to parameters received from the VM helper process when processing a select one of the operations on behalf of the VM helper process.

17. The system of claim 14 , wherein the hypervisor is configured to process parameter data when processing a select one of the operations on behalf of the VM helper process and communicate back to the VM helper process another set of data obtained from processing the select operation.

18. The system of claim 14 , wherein the hypervisor is configured to receive communication from the VM helper process via a first predefined port within the VM and the hypervisor is configured to communicate the results back to the VM helper process via a second predefined port within the VM.

Assignments (16)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0018 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NOVELL, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2009
From: KHANNA, SAURABH
To: NOVELL, INC.
Reel/Frame 022827/0006 →