Transparent VMM-Assisted User-Mode Execution Control Transfer
First Claim
1. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a first application and a guest OS running therein, a method of transferring control to a first handler program associated with the first application, the method comprising:
- the VMM receiving a first request from the first application;
the VMM attempting to access the first data needed to process the first request;
the VMM, upon determining that it cannot access the first data, suspending the first application and transferring control to the first handler program;
the first handler program providing the first data such that the first data can be accessed by the VMM and transferring control back to the VMM;
the VMM processing the first request and the first application resuming execution,wherein at least one of;
the transfer of control between the VMM and the first handler program and execution of the first handler program is transparent to the guest OS.
2 Assignments
0 Petitions
Accused Products
Abstract
A virtual-machine-based system provides a control-transfer mechanism to invoke a user-mode application handler from existing virtual hardware directly, without going through an operating system kernel running in the virtual machine. A virtual machine monitor calls directly to the guest user-mode handler and the handler transfers control back to the virtual machine monitor, without involving the guest operating system.
65 Citations
38 Claims
-
1. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a first application and a guest OS running therein, a method of transferring control to a first handler program associated with the first application, the method comprising:
-
the VMM receiving a first request from the first application; the VMM attempting to access the first data needed to process the first request; the VMM, upon determining that it cannot access the first data, suspending the first application and transferring control to the first handler program; the first handler program providing the first data such that the first data can be accessed by the VMM and transferring control back to the VMM; the VMM processing the first request and the first application resuming execution, wherein at least one of;
the transfer of control between the VMM and the first handler program and execution of the first handler program is transparent to the guest OS. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a guest OS running therein, a method of transferring control to a first handler program, the method comprising:
-
the VMM receiving a first request; the VMM determining an execution context associated with the first request; the VMM attempting to process the first request as a function of the associated execution context; the VMM, upon determining that it cannot process the first request, transferring control to the first handler program; the first handler program providing first data associated with the first execution context that can be accessed by the VMM and transferring control back to the VMM; and the VMM accessing the first data and processing the first request, wherein at least one of;
the transfer of control between the VMM and the first handler program and execution of the first handler program occurs transparently with respect to the guest OS. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM), a method comprising:
-
maintaining a metadata lookaside buffer (MLB), the MLB comprising at least one MLB entry mapping a virtual address range to corresponding resource data, each MLB entry associated with an application running within the VM; maintaining a metadata cache (MDC), the MDC comprising at least one MDC entry mapping resource data to corresponding resource metadata, wherein the resource data in an MDC entry corresponds to resource data in an MLB entry; receiving a request for access to a virtual address range from a requesting application running in the VM; determining whether or not the requested virtual address range has an MLB entry for the requesting application; if there is no MLB entry for the requested virtual address range for the requesting application; suspending execution of the requesting application; initiating execution of an MLB handler program that installs an MLB entry for the requested virtual address range; and resuming execution of the requesting application, wherein operation of the MLB handler program is transparent with respect to a guest OS application running in the VM. - View Dependent Claims (16, 17, 18, 19)
-
-
20. 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 application and a guest OS running therein, the computer program product comprising a computer readable medium having computer readable program code embodied thereon for performing a method of transferring control to a first handler program associated with the first application, the method comprising:
-
the VMM receiving a first request from the first application; the VMM attempting to access the first data needed to process the first request; the VMM, upon determining that it cannot access the first data, suspending the first application and transferring control to the first handler program; the first handler program providing the first data such that the first data can be accessed by the VMM and transferring control back to the VMM; the VMM processing the first request and the first application resuming execution, wherein at least one of;
the transfer of control between the VMM and the first handler program and execution of the first handler program is transparent to the guest OS. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A computer program product for use with a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM) having a guest OS running therein, the computer program product comprising a computer readable medium having computer readable program code embodied thereon for performing a method of transferring control to a first handler program, the method comprising:
-
the VMM receiving a first request; the VMM determining an execution context associated with the first request; the VMM attempting to process the first request as a function of the associated execution context; the VMM, upon determining that it cannot process the first request, transferring control to the first handler program; the first handler program providing first data associated with the first execution context that can be accessed by the VMM and transferring control back to the VMM; and the VMM accessing the first data and processing the first request, wherein at least one of;
the transfer of control between the VMM and the first handler program and execution of the first handler program occurs transparently with respect to the guest OS. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
-
34. A computer program product for use with a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM), the computer program product comprising a computer readable medium having computer readable program code embodied thereon for performing a method comprising:
-
maintaining a metadata lookaside buffer (MLB), the MLB comprising at least one MLB entry mapping a virtual address range to corresponding resource data, each MLB entry associated with an application running within the VM; maintaining a metadata cache (MDC), the MDC comprising at least one MDC entry mapping resource data to corresponding resource metadata, wherein the resource data in an MDC entry corresponds to resource data in an MLB entry; receiving a request for access to a virtual address range from a requesting application running in the VM; determining whether or not the requested virtual address range has an MLB entry for the requesting application; if there is no MLB entry for the requested virtual address range for the requesting application; suspending execution of the requesting application; initiating execution of an MLB handler program that installs an MLB entry for the requested virtual address range; and resuming execution of the requesting application, wherein operation of the MLB handler program is transparent with respect to a guest OS application running in the VM. - View Dependent Claims (35, 36, 37, 38)
-
Specification