IP Library Granted Patent US 8,171,255
Granted Patent B1
US 8,171,255 · App. 12/763,238 · Granted May 1, 2012

Optimization of paging cache protection in virtual environment

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,171,255
App. No.
12/763,238
Granted
May 1, 2012
Kind
B1
Abstract

A system, method and computer program product for virtualizing a processor include a virtualization system running on a computer system and controlling memory paging through hardware support for maintaining real paging structures. A Virtual Machine (VM) is running guest code and has at least one set of guest paging structures that correspond to guest physical pages in guest virtualized linear address space. At least some of the guest paging structures are mapped to the real paging structures. A cache of connection structures represents cached paths to the real paging structures. The mapped paging tables are protected using RW-bit. A paging cache is validated according to TLB resets. Non-active paging tree tables can be also protected at the time when they are activated. Tracking of access (A) bits and of dirty (D) bits is implemented along with synchronization of A and D bits in guest physical pages.

Claims (44)

1. A system for virtualizing a processor and protecting paging cache, comprising:

a virtualization system running on a computer system and controlling memory paging through hardware support for maintaining real paging structures;

a Virtual Machine (VM) running guest code and having at least one set of guest paging structures that are mapped to guest physical pages in guest address space using linear addresses; and

a Virtual Machine Monitor (VMM) paging cache comprising mapped paging tables corresponding to pages of a guest physical memory,

wherein the VMM paging cache is validated by recognizing Translation Lookaside Buffer (TLB) invalidation events initiated by the guest OS.

2. The system of claim 1 , wherein at least a part of the guest paging tables is protected by a write protection bit.

3. The system of claim 2 , wherein the guest paging structures and the real paging structures are organized into a hierarchy of layers.

4. The system of claim 3 , further comprising an additional layer that utilizes a CR3 value for caching of paging translations for different values of CR3.

5. The system of claim 2 , wherein the protection bit is an RW (read/write)-bit.

6. The system of claim 1 , wherein at least some TLB invalidation events comprise any of:

the TLB is invalidated by performing an INVLPG instruction for page linear address; and

the TLB is reset by writing into a control register CR3; and

the TLB is reset by modifying a PGE bit (Page Global Enable) in a control register CR4.

7. The system of claim 6 , wherein the paging tables comprise active paging tables having a current CR3 register pointing to them and non-active paging tables that do not have a current CR3 register pointing to them.

8. The system of claim 7 , wherein the non-active paging tables are validated and protected only upon their activation by loading a value into the CR3 register.

9. The system of claim 1 , further comprising means for tracking Access (A) and Dirty (D) bits.

10. The system of claim 9 , wherein the A and D bits are synchronized in guest paging tables entries.

11. A method for optimization of paging cache protection, the method being performed on a computer having a processor and a memory, the method comprising:

initiating a virtualization system running on a computer system and controlling memory paging through hardware support for maintaining real paging structures;

launching a Virtual Machine (VM) running guest code and having at least one set of guest paging structures that correspond to guest physical pages in guest virtualized linear address space,

wherein at least some of the guest paging structures are mapped to the real paging structures; and

generating a Virtual Machine Monitor (VMM) paging cache comprising mapped paging tables corresponding to pages of a guest physical memory,

protecting the paging tables by using a write protection bit;

validating the VMM paging cache by tracking TLB resets and performing INVLPG instructions;

clearing the VMM paging cache by writing into a current control register CR3; and

tracking Access (A) and Dirty (D) bits and synchronizing the A and D bits in a guest physical memory,

wherein the VMM paging cache is validated by recognizing Translation Lookaside Buffer (TLB) invalidation events initiated by the guest OS.

12. The method of claim 11 , wherein at least some TLB invalidation events comprise any of:

the TLB is invalidated by performing an INVLPG instruction for page linear address; and

the TLB is reset by writing into a control register CR3; and

the TLB is reset by modifying a PGE bit (Page Global Enable) in a control register CR4.

13. The method of claim 11 , wherein the write protection bit is an RW (read/write)-bit.

14. The method of claim 11 , further comprising, protecting global pages by modifying a CR4.GE bit.

15. The method of claim 11 , wherein, if mapping entries become unsynchronized, protecting the paging root tables by setting the RW-bit and applying the INVLPG instructions to page directory and page table entries.

16. A method for optimization of paging cache protection, the method being performed on a computer having a processor and a memory, the method comprising:

initiating a virtualization system running on a computer system and controlling memory paging through hardware support for maintaining real paging structures;

launching a Virtual Machine (VM) running guest code and having at least one set of guest paging structures that correspond to guest physical pages in guest virtualized linear address space,

wherein at least some of the guest paging structures are mapped to the real paging structures using double-mapping;

generating a Virtual Machine Monitor (VMM) paging cache comprising mapped paging tables corresponding to pages of a guest physical memory;

protecting the paging tables by setting an Access bit (A) for each page as read-only;

executing re-mapping of the pages upon page access by resetting a Dirty bit (D);

resetting the Access (A) bit to read-write; and

synchronizing the A and D bits in a guest physical memory.

17. The method of claim 16 , wherein the Access (A) bit is set as read-only regardless of a page access status.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
MERGER Recorded Jan 30, 2018
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 045193/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2011
From: PARALLELS SOFTWARE INTERNATIONAL, INC.
To: PARALLELS HOLDINGS, LTD.
Reel/Frame 027467/0328 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2010
From: KORYAKIN, ALEXEY B.; TORMASOV, ALEXANDER G.; BELOUSSOV, SERGUEI M.; OMELYANCHUK, ANDREY A.; DOBROVOLSKIY, NIKOLAY N.
To: PARALLELS SOFTWARE INTERNATIONAL, INC.
Reel/Frame 024256/0404 →