IP Library Patent Application 12883465
Patent Application
App. No. 12/883,465

SINGLE STEP PROCESSING OF MEMORY MAPPED ACCESSES IN A HYPERVISOR

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 None
App. No.
12/883,465
Abstract

Trapping and/or processing of read/write accesses to hardware devices represented to the host through a memory mapped space may be performed without knowledge of the processor's instruction set or semantics of the processor's instructions. A single step routine may be executed to recognize page faults occurring from read/write accesses to emulated memory pages and causing the guest to retry the operation on a single step buffer. The hypervisor may perform post-operation processing on the single step buffer after the guest retries and completes the read or write access. For example, on a read request, the single step routine may place the guest value in the single step buffer for reading by the guest on a retry operation. On a write request, the single step routine may direct the guest to retry the write operation into the single step buffer. After the retry operation the single step routine may read the guest value from the single step buffer and place the guest value in a register of an appropriate emulated system.

Claims (41)

1 . A method, comprising:

determining an access request from a guest to a memory page of a memory device has created a page fault;

passing page fault information to a processor for decoding;

mapping the memory page to a single step buffer; and

directing the guest to repeat the access request to the single step buffer.

2 . The method of claim 1 , further comprising when the access request is a read request storing a read value into the single step buffer before directing the guest to repeat the access request.

3 . The method of claim 1 , in which the access request is to a hardware device represented as the memory page.

4 . The method of claim 1 , further comprising when the access request is a write request:

reading a value from the single step buffer after directing the guest to repeat the access request; and

executing an emulator to place the value in a register structure of the emulator.

5 . The method of claim 4 , in which the emulator is at least one of a VAPIC emulator, a VIOAPIC emulator, a WDT emulator, and a VGA emulator.

6 . The method of claim 1 , in which the step of directing the guest to repeat the access request comprises returning execution to the guest by executing a VMRESUME operation.

7 . The method of claim 1 , in which the step of mapping the memory page to the single step buffer maps through a shadow page table entry.

8 . A computer program product, comprising:

a computer-readable medium comprising:

code to determine an access request from a guest to a memory page of a memory device has created a page fault;

code to pass page fault information to a processor for decoding;

code to map the memory page to a single step buffer; and

code to direct the guest to repeat the access request to the single step buffer.

9 . The computer program product of claim 8 , in which the medium further comprises code to, when the access request is a read request, store a read value into the single step buffer before directing the guest to repeat the access request.

10 . The computer program product of claim 8 , in which the access request is to a hardware device represented as the memory page.

11 . The computer program product of claim 8 , in which the medium further comprises:

code to read, when the access request is a write request, a value from the single step buffer after directing the guest to repeat the access request; and

code to execute, when the access request is a write request, an emulator to place the value in a register structure of the emulator.

12 . The computer program product of claim 11 , in which the emulator is at least one of a VAPIC emulator, a VIOAPIC emulator, a WDT emulator, and a VGA emulator.

13 . The computer program product of claim 8 , in which the code to direct the guest to repeat the access request returns control to the guest by executing a VMRESUME operation.

14 . The computer program product of claim 8 , in which the code to map the memory page to the single step buffer maps through a shadow page table entry.

15 . An apparatus, comprising:

a memory device; and

at least one processor coupled to the memory device, in which the at least one processor is configured:

to determine an access request from a guest to a memory page of the memory device has created a page fault;

to pass page fault information to the at least one processor for decoding;

to map the memory page to a single step buffer; and

to direct the guest to repeat the access request to the single step buffer.

16 . The apparatus of claim 15 , in which the at least one processor is further configured to, when the access request is a read request, store a read value into the single step buffer before directing the guest to repeat the access request.

17 . The apparatus of claim 15 , in which the access request is to a hardware device represented as the memory page.

18 . The apparatus of claim 15 , in which the at least one processor is further configured:

to read, when the access request is a write request, a value from the single step buffer after directing the guest to repeat the access request; and

to execute, when the access request is a write request, an emulator to place the value in a register structure of the emulator.

19 . The apparatus of claim 15 , in which the at least one processor directs the guest to repeat the access request by returning control to the guest by executing a VMRESUME operation.

20 . The apparatus of claim 15 , in which the at least one processor maps the memory page to the single step buffer through a shadow page table entry.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded Nov 2, 2010
From: UNISYS CORPORATION
To: DEUTSCHE BANK NATIONAL TRUST COMPANY
Reel/Frame 025227/0391 →