IP Library › Granted Patent US 6,996,748
Granted Patent B2
US 6,996,748 · App. 10/184,798 · Granted Feb 7, 2006

Handling faults associated with operation of guest software in the virtual-machine architecture

Assignee: Intel Corporation
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 6,996,748
App. No.
10/184,798
Granted
Feb 7, 2006
Kind
B2
Abstract

In one embodiment, fault information relating to a fault associated with the operation of guest software is received. Further, a determination is made as to whether the fault information satisfies one or more fault filtering criteria. If the determination is positive, the guest software is permitted to disregard the fault.

Claims (63)

1. A method comprising:

receiving fault information relating to a fault associated with an operation of guest software;

determining whether the fault information satisfies at least one fault filtering criterion;

causing the guest software to ignore the fault if the fault information satisfies the at least one fault filtering criterion; and

delivering the fault to the guest software if the fault information does not satisfy the at least one fault filtering criterion.

2. The method of claim 1 further comprising:

determining that the fault information does not satisfy the at least one fault filtering criterion; and

determining whether the fault information satisfies at least one control transfer filtering criterion.

3. The method of claim 2 further comprising:

delivering the fault to the guest software if the fault information satisfies the at least one control transfer filtering criterion.

4. The method of claim 2 further comprising:

transferring control to a virtual machine monitor if the fault information does not satisfy the at least one control transfer filtering criterion.

5. The method of claim 1 wherein the fault information is at least one of a fault identifier, an error code associated with the fault and one or more additional data values associated with the fault.

6. The method of claim 1 wherein the fault represents any one of an interrupt, an exception, and a platform event.

7. The method of claim 1 wherein determining whether the fault information satisfies the at least one fault filtering criterion comprises:

determining whether the operation of the guest software is a write to a page table entry; and

determining whether the write is an attempt to mark a page being mapped by the page table entry as not present.

8. The method of claim 1 wherein determining whether the fault information satisfies the at least one fault filtering criterion further comprises:

determining whether the operation of the guest software is a write to a page table entry;

determining whether the write is an attempt to mark a page being mapped by the page table entry as present;

determining whether the page being mapped by the page table entry was previously marked as present;

determining whether the write is not an attempt to modify a page frame number; and

determining whether at least one of a group of conditions occurs, the group of conditions including a first condition requiring that the write be an attempt to mark the page mapped by the page table entry as read-only and the second condition requiring that the page being mapped by the page table entry have been previously writeable.

9. A method comprising:

detecting an occurrence of a faulting condition associated with an operation of guest software;

determining whether fault information pertaining to the faulting condition satisfies at least one fault filtering criterion, the determination comprising comparing data associated with the operation of the guest software with data stored in at least one of memory and a processor register; and

determining whether the guest software is permitted to ignore the faulting condition based on the evaluation.

10. The method of claim 9 wherein the fault information is at least one of a fault identifier, an error code associated with the fault and one or more additional data values associated with the fault.

11. The method of claim 9 wherein the fault condition is associated with an attempt of the guest software to access memory.

12. The method of claim 9 wherein determining whether the fault information satisfies the at least one fault filtering criterion further comprises:

determining whether the operation of the guest software is a write to a page table entry; and

determining whether the write is an attempt to mark a page being mapped by the page table entry as not present.

13. The method of claim 9 wherein determining whether the fault information satisfies the at least one fault filtering criterion further comprises:

determining whether the operation of the guest software is a write to a page table entry;

determining whether the write is an attempt to mark a page being mapped by the page table entry as present;

determining whether the page being mapped by the page table entry was previously marked as present;

determining whether the write is not an attempt to modify a page frame number; and

determining whether at least one of a group of conditions occurs, the group of conditions including a first condition requiring that the write be an attempt to mark the page mapped by the page table entry as read-only and the second condition requiring that the page being mapped by the page table entry have been previously writeable.

14. A system comprising:

a memory having stored therein guest software; and

a processor, coupled to the memory, to execute the guest software, to determine whether fault information relating to a fault associated with an operation of the guest software satisfies at least one fault filtering criterion, to cause the guest software to ignore the fault if the fault information satisfies the at least one fault filtering criterion, to determine that the fault information does not satisfy the at least one fault filtering criterion, and to deliver the fault to the guest software.

15. The system of claim 14 wherein the processor is further to determine that the fault information does not satisfy the at least one fault filtering criterion, and to determine whether the fault information satisfies at least one control transfer filtering criterion.

16. The system of claim 15 wherein the processor is further to deliver the fault to the guest software if the fault information satisfies the at least one control transfer filtering criterion.

17. The system of claim 15 wherein the processor is further to transfer control to a virtual machine monitor if the fault information does not satisfy the at least one control transfer filtering criterion.

18. A system comprising:

a memory having stored therein guest software; and

a processor, coupled to the memory, to execute the guest software, to detect an occurrence of a faulting condition associated with an operation of guest software, to determine whether fault information pertaining to the faulting condition satisfies at least one fault filtering criterion, the determination comprising comparing data associated with the operation of the guest software with data stored in at least one of memory and a processor register, and to determine whether the guest software is permitted to ignore the faulting condition based on the evaluation.

19. The system of claim 18 wherein the fault condition is associated with an attempt of the guest software to access memory.

20. The system of claim 18 wherein the processor is to determine whether the fault information satisfies the at least one fault filtering criterion by determining whether the operation of the guest software is a write to a page table entry, and determining whether the write is an attempt to mark a page being mapped by the page table entry as not present.

21. A machine-readable medium containing instructions which, when executed by a processing system, cause the processing system to perform a method, the method comprising:

receiving fault information relating to a fault associated with an operation of guest software;

determining whether the fault information satisfies at least one fault filtering criterion;

causing the guest software to ignore the fault if the fault information satisfies the at least one fault filtering criterion;

determining that the fault information does not satisfy the at least one fault filtering criterion; and

delivering the fault to the guest software.

22. The machine-readable medium of claim 21 wherein the method further comprises:

determining that the fault information does not satisfy the at least one fault filtering criterion; and

determining whether the fault information satisfies at least one control transfer filtering criterion.

23. A machine-readable medium containing instructions which, when executed by a processing system, cause the processing system to perform a method, the method comprising:

detecting an occurrence of a faulting condition associated with an operation of guest software;

determining whether fault information pertaining to the faulting condition satisfies at least one fault filtering criterion, the determination comprising comparing data associated with the operation of the guest software with data stored in at least one of memory and a processor register; and

determining whether the guest software is permitted to ignore the faulting condition based on the evaluation.

24. The machine-readable medium of claim 23 wherein the fault condition is associated with an attempt of the guest software to access memory.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2016
From: INTEL CORPORATION
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 038640/0154 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL/FRAME 013363/0704. (ASSIGNMENT OF ASSIGNOR'S INTEREST) Recorded Jun 9, 2004
From: UHLIG, RICHARD; ANDERSON, ANDREW V.; BENNETT, STEVE; COTA-ROBLES, ERIK; JEYASINGH, STALINSELVARAJ; KAGI, ALAIN; NEIGER, GILBERT
To: INTEL CORPORATION
Reel/Frame 014714/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2002
From: UHLIGH, RICHARD; ANDERSON, ANDREW V.; BENNETT, STEVE; COTA-ROBLES, ERIK; JEYASINGH, STALINSELVARAJ; KAGI, ALAIN; NEIGER, GILBERT
To: INTEL CORPORATION
Reel/Frame 013363/0704 →
Continuity (1)
Related Publication 20040003324A1 · Jan 1, 2004