IP Library Granted Patent US 8,132,167
Granted Patent B2
US 8,132,167 · App. 12/317,639 · Granted Mar 6, 2012

Context based virtualization

Assignee: Hewlett-Packard Development Company, L.P.
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,132,167
App. No.
12/317,639
Granted
Mar 6, 2012
Kind
B2
Abstract

Methods, systems, apparatuses and program products are disclosed for managing device virtualization in hypervisor and hypervisor-related environment which include both pass-thru I/O and emulated I/O. This may include setting up a page table entry so an instruction may execute untrapped in an unprivileged domain such as by creating a new entry in a page table with requisite read or write permissions set. Later the page table may be edited (or an entry deleted) so the same I/O instruction is trapped and responsively emulated. In another embodiment of the invention, an electronic device may be provided with at least one controller; and one non-volatile memory having instructions encoded therein which, when executed, implement the context-based virtualization An advantage provided by the present invention is that performance of the device may be traded off against resource consumed dynamically responsive to system operating conditions. Also, I/O access to peripheral devices may be switched to and fro between emulation and pass-thru operation.

Claims (54)

1. A method of executing a hypervisor program comprising:

setting up a page table entry to set a permission associated with a MMIO (memory mapped input-output) address, for an instruction to execute untrapped from within an unprivileged domain, the instruction being operative to make a MMIO access at the MMIO address;

executing the instruction an initial time;

revoking the permission in response to a first change of context; and

trapping a subsequent execution of the instruction.

2. The method of claim 1 wherein:

the step of executing the instruction an initial time is performed in a Ring 3 processor state.

3. The method of claim 1 further including the step of:

reinstating the permission responsive to a second change of context.

4. The method of claim 1 further including the step of:

issuing a copy of the instruction in a privileged CPU state responsive to the trapping the subsequent execution of the instruction.

5. The method of claim 4 further wherein:

the subsequent execution of the instruction is performed in a Ring 3 processor state; and

the privileged CPU state is a Ring 0 processor state.

6. The method of claim 1 further including the step of:

emulating a peripheral device responsive to the trapping the subsequent execution of the instruction.

7. The method of claim 6 further including the steps of:

providing surrogate peripheral device data to the unprivileged domain;

and wherein the subsequent execution of the instruction is for a MMIO read access.

8. The method of claim 6 further including the step of:

simulating a media-absent status.

9. A computer program product comprising:

at least one computer-readable medium having instructions encoded therein, the instructions when executed by at least one processor cause said at least one processor to

operate for context based virtualization by steps comprising the acts of:

setting up a page table entry to set a permission associated with a MMIO (memory mapped input-output) address, for an instruction to execute untrapped from within an unprivileged domain, the instruction being operative to make a MMIO access at the MMIO address;

executing the instruction an initial time;

revoking the permission in response to a first change of context; and

trapping a subsequent execution of the instruction.

10. The computer program product of claim 9 wherein the instructions further cause the at least one processor to:

reinstate the permission responsive to a second change of context.

11. The computer program product of claim 9 wherein the instructions further cause the at least one processor to:

issue a copy of the instruction in a privileged CPU state responsive to the trapping the subsequent execution of the instruction.

12. A method comprising:

an act of modulating a signal onto an electromagnetic carrier wave impressed into a tangible medium, or of demodulating the signal from the electromagnetic carrier wave, the signal having instructions encoded therein, the instructions when executed by at least one processor causing said at least one processor to

operate for context based virtualization by steps comprising the acts of:

setting up a page table entry to set a permission associated with a MMIO (memory mapped input-output) address, for an instruction to execute untrapped from within an unprivileged domain, the instruction being operative to make a MMIO access at the MMIO address;

executing the instruction an initial time;

revoking the permission in response to a first change of context; and

trapping a subsequent execution of the instruction.

13. The method of claim 12 wherein the acts further include:

reinstating the permission responsive to a second change of context.

14. The method of claim 12 wherein the acts further include:

issuing a copy of the instruction in a privileged CPU state responsive to the trapping the subsequent execution of the instruction.

15. An electronic device comprising:

at least one controller; and

at least one non-volatile memory having instructions encoded therein, the instructions when executed by the controller cause said controller to

operate for context based virtualization by steps comprising the acts of:

setting up a page table entry to set a permission associated with a MMIO (memory mapped input-output) address, for an instruction to execute untrapped from within an unprivileged domain, the instruction being operative to make a MMIO access at the MMIO address;

executing the instruction an initial time;

revoking the permission in response to a first change of context; and

trapping a subsequent execution of the instruction.

16. The electronic device of claim 15 wherein the instructions when executed by the controller further cause said controller to reinstate the permission responsive to a second change of context.

17. The electronic device of claim 15 wherein the acts further include:

issuing a copy of the instruction in a privileged CPU state responsive to the trapping the subsequent execution of the instruction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HEWLETT-PACKARD COMPANY
Reel/Frame 024721/0319 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2008
From: BARDE, KAUSHIK; BRAMLEY, RICHARD; LAUE, MATT
To: PHOENIX TECHNOLOGIES LTD
Reel/Frame 022094/0359 →
Continuity (1)
Related Publication 20100162243A1 · Jun 24, 2010