IP Library Granted Patent US 10,048,982
Granted Patent B2
US 10,048,982 · App. 15/138,136 · Granted Aug 14, 2018

Method for performing control transfers in a system with cloaked pages

Inventors: Xiaoxin Chen (Cupertino, CA); Carl A. Waldspurger (Palo Alto, CA); Pratap Subrahmanyam (Saratoga, CA)
Assignee: VMware, Inc.
G06F9/461G06F9/4486G06F9/45533G06F9/45558G06F9/4881G06F11/1451G06F11/1484G06F2009/45562G06F2009/45583G06F2201/815G06F2201/84
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,048,982
App. No.
15/138,136
Granted
Aug 14, 2018
Kind
B2
Abstract

A virtual-machine-based system that identifies an application or process in a virtual machine in order to locate resources associated with the identified application. Access to the located resources is then controlled based on a context of the identified application. Those applications without the necessary context will have a different view of the resource.

Claims (66)

1. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a first execution context running therein, a method of facilitating a guest operating system (OS) running in the VM to respond to a first event occurrence issued from the first execution context comprising:

(1) the VMM intercepting the first event occurrence and taking control from the first execution context;

(2) the VMM saving a state of the first execution context in a first memory space provided for the first execution context;

(3) the VMM redirecting control to a dispatch handler program;

(3A) the dispatch handler program creating a second event occurrence as a function of the first event occurrence and issuing the second event occurrence to the guest OS;

(4) the VMM intercepting the second event occurrence, saving a state of the dispatch handler program, modifying control return information of the second event occurrence and forwarding the modified second event occurrence to the guest OS;

(5) the guest OS processing the second event occurrence and returning control as a function of the modified control return information;

(6) the VMM restoring the state of the saved dispatch handler program and the dispatch handler program processing data returned by the guest OS in response to the modified second event occurrence;

(7) the dispatch handler program requesting the VMM to resume execution of the first execution context; and

(8) the VMM restoring the state of the first execution context saved in step (2) and returning control to the first execution context.

2. The method of claim 1 , wherein step (2) comprises:

storing contents of one or more registers in an address space associated with the first execution context;

setting an instruction pointer (IP) to an entry point corresponding to the dispatch handler program; and

setting a stack pointer to execute the dispatch handler program.

3. The method of claim 1 , wherein step (3) comprises at least one of:

marshalling arguments; and

copying the marshalled arguments to a buffer.

4. The method of claim 1 , wherein:

the first memory space in which the VMM saves the state of the first execution context is different from a second memory space in which the VMM saves the state of the dispatch handler program.

5. The method of claim 1 , wherein the first event occurrence is one of:

a system call;

a control transfer instruction between an application running in the VM and the guest OS; and

a control transfer between first and second applications running in the VM.

6. A computer program product for use with a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a first execution context running therein, the computer program product comprising a computer readable medium having computer readable program code embodied thereon for performing a method of facilitating a guest operating system (OS) running in the VM to respond to a first event occurrence issued from the first execution context, the method comprising:

(1) the VMM intercepting the first event occurrence and taking control from the first execution context;

(2) the VMM saving a state of the first execution context in a first memory space provided for the first execution context;

(3) the VMM redirecting control to a dispatch handler program;

(3A) the dispatch handler program creating a second event occurrence as a function of the first event occurrence and issuing the second event occurrence to the guest OS;

(4) the VMM intercepting the second event occurrence, saving a state of the dispatch handler program, modifying control return information of the second event occurrence and forwarding the modified second event occurrence to the guest OS;

(5) the guest OS processing the second event occurrence and returning control as a function of the modified control return information;

(6) the VMM restoring the state of the saved dispatch handler program and the dispatch handler program processing data returned by the guest OS in response to the modified second event occurrence;

(7) the dispatch handler program requesting the VMM to resume execution of the first execution context; and

(8) the VMM restoring the state of the first execution context saved in step (2) and returning control to the first execution context.

7. The computer program product of claim 6 , wherein step (2) comprises:

storing contents of one or more registers in an address space associated with the first execution context;

setting an instruction pointer (IP) to an entry point corresponding to the dispatch handler program; and

setting a stack pointer to execute the dispatch handler program.

8. The computer program product of claim 6 , wherein step (3) comprises at least one of:

marshalling arguments; and

copying the marshalled arguments to a buffer.

9. The computer program product of claim 6 , wherein: the first memory space in which the VMM saves the state of the first execution context is different from a second memory space in which the VMM saves the state of the dispatch handler program.

10. The computer program product of claim 6 , wherein the first event occurrence is one of:

a system call;

a control transfer instruction between an application running in the VM and the guest OS; and

a control transfer between first and second applications running in the VM.

11. A computer system comprising:

a host machine;

a virtual machine (VM) having a first execution context and a guest operating system (OS) running therein; and

a virtual machine monitor (VMM) running on the host machine and supporting the VM, wherein the VMM facilitates the guest OS to respond to a first event occurrence issued from the first execution context by executing a method comprising:

(1) intercepting the first event occurrence and taking control from the first execution context;

(2) saving a state of the first execution context in a first memory space provided for the first execution context;

(3) redirecting control to a dispatch handler program, the dispatch handler program creating a second event occurrence as a function of the first event occurrence and issuing the second event occurrence to the guest OS;

(4) intercepting the second event occurrence, saving a state of the dispatch handler program, modifying control return information of the second event occurrence and forwarding the modified second event occurrence to the guest OS, the guest OS processing the second event occurrence and returning control as a function of the modified control return information;

(5) restoring the state of the saved dispatch handler program and the dispatch handler program processing data returned by the guest OS in response to the modified second event occurrence, the dispatch handler program requesting the VMM to resume execution of the first execution context; and

(6) restoring the state of the first execution context saved in step (2) and returning control to the first execution context.

12. The computer system of claim 11 , wherein step (2) comprises:

storing contents of one or more registers in an address space associated with the first execution context;

setting an instruction pointer (IP) to an entry point corresponding to the dispatch handler; and

setting a stack pointer to execute the dispatch handler program.

13. The computer system of claim 11 , wherein step (3) comprises at least one of: marshalling arguments; and copying the marshalled arguments to a buffer.

14. The computer system of claim 11 , wherein:

the first memory space in which the VMM saves the state of the first execution context is different from a second memory space in which the VMM saves the state of the dispatch handler program.

15. The computer system of claim 11 , wherein the first event occurrence is one of:

a system call;

a control transfer instruction between an application running in the VM and the guest OS; and

a control transfer between first and second applications running in the VM.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (4)
Division 14071455 · Nov 4, 2013
Continuation 12261159 · Oct 30, 2008
Provisional Application 60983797 · Oct 30, 2007
Related Publication 20160239339A1 · Aug 18, 2016
Cited By (3)
US 12,494,898 US 12,498,954 US 12,609,811