IP Library › Granted Patent US 10,503,664
Granted Patent B2
US 10,503,664 · App. 15/175,348 · Granted Dec 10, 2019

Virtual machine manager for address mapping and translation protection

Inventors: David M. Durham (Beaverton, OR); Ravi L. Sahita (Beaverton, OR); Gilbert Neiger (Hillsboro, OR); Vedvyas Shanbhogue (Austin, TX); Andrew V. Anderson (Forest Grove, OR); Michael Lemay (Hillsboro, OR); Joseph F. Cihula (Hillsboro, OR); Arumugam Thiyagarajah (Folsom, CA); Asit K. Mallick (Saratoga, CA); Barry E. Huntley (Hillsboro, OR); David A. Koufaty (Portland, OR); Deepak K. Gupta (Hillsboro, OR); Baiju V. Patel (Portland, OR)
Assignee: INTEL CORPORATION
G06F12/145G06F9/45533G06F12/1009G06F2212/1016G06F2212/1052G06F2212/151G06F2212/656G06F2212/657
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,503,664
App. No.
15/175,348
Granted
Dec 10, 2019
Kind
B2
Abstract

This disclosure is directed to a system for address mapping and translation protection. In one embodiment, processing circuitry may include a virtual machine manager (VMM) to control specific guest linear address (GLA) translations. Control may be implemented in a performance sensitive and secure manner, and may be capable of improving performance for critical linear address page walks over legacy operation by removing some or all of the cost of page walking extended page tables (EPTs) for critical mappings. Alone or in combination with the above, certain portions of a page table structure may be selectively made immutable by a VMM or early boot process using a sub-page policy (SPP). For example, SPP may enable non-volatile kernel and/or user space code and data virtual-to-physical memory mappings to be made immutable (e.g., non-writable) while allowing for modifications to non-protected portions of the OS paging structures and particularly the user space.

Claims (51)

1. A device to selectively protect virtual-to-physical memory mapping, comprising:

memory circuitry to at least store data in memory pages, wherein portions of the memory pages are addressable via guest physical addresses (GPAs); and

processing circuitry to at least control access to at least one portion of at least one memory page based on a sub-page policy (SPP), wherein the processing circuitry is to configure protection for the at least one memory page utilizing a page permission set in an extended page table (EPT) and control access to the at least one portion using the SPP; and wherein the processing circuitry is to receive a translation request and initiate a page walk based on the translation request by determining if a control register referencing a root of a paging structure in the processing circuitry references a GPA corresponding to a paging structure, and triggering a VMexit instruction when it is determined that the referenced GPA does not correspond to a paging structure.

2. The device of claim 1 , wherein the processing circuitry is to determine if the GPA referenced by the control register corresponds to a paging structure based on at least one of a table, an indicator bit or a bitmap mapping locations of paging structures.

3. The device of claim 1 , wherein the processing circuitry is to perform the page table walk based on the translation request and determine if a first indicator bit in the EPT indicates that at least one portion of the at least one memory page is accessible.

4. The device of claim 3 , wherein the processing circuitry is to determine that accessed/dirty (A/D) bit assists are allowed to be updated in the memory circuitry based on the first indicator bit.

5. The device of claim 3 , wherein the processing circuitry is to determine if virtual exceptions are suppressed when the first indicator bit indicates that at least one portion of the at least one memory page is not accessible.

6. The device of claim 5 , wherein the processing circuitry is to determine, when a second indicator in the page table indicates that protection is required for a GPA referenced in the translation request, if all of the page table walk was read only, and determine if virtual exceptions are suppressed when it is determined that all of the page table walk was not read only.

7. The device of claim 6 , wherein in determining if virtual exceptions are suppressed the processing circuitry is further to trigger a VMexit instruction when virtual exceptions are suppressed and indicate a #VE exception to software when virtual exceptions are not suppressed.

8. A method for selectively protecting virtual-to-physical memory mapping:

in a device comprising at least processing circuitry and memory circuitry to at least store data in memory pages, wherein portions of the memory pages are addressable via guest physical addresses (GPAs), controlling access to at least one portion of at least one memory page based on a sub-page policy (SPP) implemented by the processing circuitry;

configuring protection for the at least one memory page utilizing a page permission set in an extended page table (EPT);

controlling access to the at least one portion using the SPP;

receiving a translation request; and

initiating a page walk based on the translation request by:

determining if a control register referencing a root of a paging structure in the processing circuitry references a GPA corresponding to a paging structure; and

triggering a VMexit instruction when it is determined that the referenced GPA does not correspond to a paging structure.

9. The method of claim 8 , further comprising:

determining if the GPA referenced by the control register corresponds to a paging structure based on at least one of a table, an indicator bit or a bitmap mapping locations of paging structures.

10. The method of claim 8 , further comprising:

performing the page table walk based on the translation request; and

determining if a first indicator bit in the EPT indicates that at least one portion of the at least one memory page is accessible.

11. The method of claim 10 , further comprising:

determining if virtual exceptions are suppressed when the first indicator bit indicates that at least one portion of the at least one memory page is not accessible.

12. The method of claim 11 , further comprising:

determining, when a second indicator in the page table indicates that protection is required for a GPA referenced in the translation request, if all of the page table walk was read only; and

determining if virtual exceptions are suppressed when it is determined that all of the page table walk was not read only.

13. The method of claim 12 , wherein determining if virtual exceptions are suppressed comprises:

triggering a VMexit instruction when virtual exceptions are suppressed; and

indicating a #VE exception to software when virtual exceptions are not suppressed.

14. At least one non-transitory machine-readable storage device having stored thereon, individually or in combination, instructions for selectively protecting virtual-to-physical memory mapping that, when executed by one or more processors, cause the one or more processors to:

in a device comprising at least processing circuitry and memory circuitry to at least store data in memory pages, wherein portions of the memory pages are addressable via guest physical addresses (GPAs), control access to at least one portion of at least one memory page based on a sub-page policy (SPP) implemented by the processing circuitry:

configure protection for the at least one memory page utilizing a page permission set in an extended page table (EPT);

control access to the at least one portion using the SPP;

receive a translation request; and

initiate a page walk based on the translation request by:

determining if a control register referencing a root of a paging structure in the processing circuitry references a GPA corresponding to a paging structure; and

triggering a VMexit instruction when it is determined that the referenced GPA does not correspond to a paging structure.

15. The at least one storage device of claim 14 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:

determine if the GPA referenced by the control register corresponds to a paging structure based on at least one of a table, an indicator bit or a bitmap mapping locations of paging structures.

16. The at least one storage device of claim 14 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:

perform the page table walk based on the translation request; and

determine if a first indicator bit in the EPT indicates that at least one portion of the at least one memory page is accessible.

17. The at least one storage device of claim 16 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:

determine if virtual exceptions are suppressed when the first indicator bit indicates that at least one portion of the at least one memory page is not accessible.

18. The at least one storage device of claim 17 , further comprising instructions that, when executed by one or more processors, cause the one or more processors to:

determine, when a second indicator in the page table indicates that protection is required for a GPA referenced in the translation request, if all of the page table walk was read only; and

determine if virtual exceptions are suppressed when it is determined that all of the page table walk was not read only.

19. The at least one storage device of claim 18 , wherein the instructions to determine if virtual exceptions are suppressed comprise instructions to:

trigger a VMexit instruction when virtual exceptions are suppressed; and

indicate a #VE exception to software when virtual exceptions are not suppressed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: DURHAM, DAVID M.; SAHITA, RAVI L.; NEIGER, GILBERT; SHANBHOGUE, VEDVYAS; ANDERSON, ANDREW V.; LEMAY, MICHAEL; CIHULA, JOSEPH F.; THIYAGARAJAH, ARUMUGAM; MALLICK, ASIT K.; HUNTLEY, BARRY E.; KOUFATY, DAVID A.; GUPTA, DEEPAK K.; PATEL, BAIJU V.
To: INTEL CORPORATION
Reel/Frame 040985/0054 →
Continuity (2)
Provisional Application 62301403 · Feb 29, 2016
Related Publication 20170249261A1 · Aug 31, 2017
Cited By (1)
US 12,455,757