IP Library Granted Patent US 8,156,503
Granted Patent B2
US 8,156,503 · App. 12/029,475 · Granted Apr 10, 2012

System, method and computer program product for accessing a memory space allocated to a virtual machine

Assignee: International Business Machines 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 8,156,503
App. No.
12/029,475
Granted
Apr 10, 2012
Kind
B2
Abstract

A method for accessing a memory space allocated to a virtual machine, the method includes: receiving a request from the virtual machine to generate, for another virtual machine, a memory credential associated with a certain memory space allocated to the virtual machine; generating, in response to the request, a cryptographically signed credential; sending the cryptographically signed credential to the other virtual machine; receiving from the other virtual machine an access request to access at least one memory entry within the certain memory space; and accessing the at least one memory entry, if the access request complies with the memory credential.

Claims (45)

1. A method for accessing a memory space allocated to a virtual machine, the method comprises:

receiving, by an intermediate entity, a request from the virtual machine to generate, for another virtual machine, a memory credential associated with a certain memory space allocated to the virtual machine;

generating, by the intermediate entity, in response to the request, a cryptographically signed credential;

sending, by the intermediate entity the cryptographically signed credential to the other virtual machine;

receiving, by the intermediate entity from the other virtual machine an access request to access at least one memory entry within the certain memory space;

accessing the at least one memory entry, if the access request complies with the memory credential; and

pinning at least one physical memory page associated with the at least one memory entry during an access of the other virtual machine.

2. The method according to claim 1 comprising performing the accessing without performing an operation selected from a list consisting of: context switch, interacting with an operating system and interfacing with a hypervisor.

3. The method according to claim 1 wherein the virtual machine and the other virtual machines reside on different machines.

4. The method according to claim 1 further comprising:

receiving a credential generation request from the virtual machine to generate for a component that is not directly utilized by the virtual machine, a memory credential associated with a memory space allocated to the virtual machine;

generating, in response to the request, a cryptographically signed credential;

storing a mapping between the component and the cryptographically signed credential;

receiving from the component an access request to access at least one memory entry within the certain memory space;

utilizing the mapping to retrieve a cryptographically signed credential that is associated with the component.

5. The method according to claim 1 comprising generating the mapping between the component and the cryptographically signed credential; wherein the component is identified by a unique component identifier.

6. A computer program product comprising a computer usable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:

receiving, by an intermediate entity, a request from the virtual machine to generate, for another virtual machine, a memory credential associated with a certain memory space allocated to the virtual machine;

generating, by the intermediate entity, in response to the request, a cryptographically signed credential;

sending, by the intermediate entity the cryptographically signed credential to the other virtual machine;

receiving, by the intermediate entity from the other virtual machine an access request to access at least one memory entry within the certain memory space;

accessing the at least one memory entry, if the access request complies with the memory credential; and

pinning at least one physical memory page associated with the at least one memory entry during an access of the other virtual machine.

7. The computer program product according to claim 6 , wherein the computer readable program when executed on a computer causes the computer to access without performing an operation selected from a list consisting of: context switch, interacting with an operating system and interfacing with a hypervisor.

8. The computer program product according to claim 6 , wherein the virtual machine and the other virtual machines reside on different machines.

9. The computer program product according to claim 6 , wherein the computer readable program when executed on a computer causes the computer to: receive a credential generation request from the virtual machine to generate for a component that is not directly utilized by the virtual machine, a memory credential associated with a memory space allocated to the virtual machine; generate, in response to the request, a cryptographically signed credential; store a mapping between the component and the cryptographically signed credential; receive from the component an access request to access at least one memory entry within the certain memory space; and utilize the mapping to retrieve a cryptographically signed credential that is associated with the component.

10. The computer program product according to claim 9 , wherein the computer readable program when executed on a computer causes the computer to generate the mapping between the component and the cryptographically signed credential; wherein the component is identified by a unique component identifier.

11. A system for accessing a memory space allocated to a virtual machine, the system is adapted to host the virtual machine; the system comprises:

a memory unit; and

an intermediate entity;

the intermediate entity comprises:

a direct memory access controller; and

a cryptography module;

wherein the intermediate entity is adapted to:

receive a request from the virtual machine to generate, for another virtual machine, a memory credential associated with a certain memory space allocated to the virtual machine;

generate, in response to the request, a cryptographically signed credential;

send the cryptographically signed credential to the other virtual machine; receive from the other virtual machine an access request to access at least one memory entry within the certain memory space;

access the at least one memory entry of the memory unit, if the access request complies with the memory credential; and

pin at least one physical memory page associated with the at least one memory entry during an access of the other virtual machine.

12. The system according to claim 11 wherein the intermediate entity performs the access without performing an operation selected from a list consisting of: context switch, interacting with an operating system and interfacing with a hypervisor.

13. The system according to claim 11 adapted to host the other virtual machine.

14. The system according to claim 11 wherein the intermediate entity is adapted to: receive a credential generation request from the virtual machine to generate for a component that is not directly utilized by the virtual machine, a memory credential associated with a memory space allocated to the virtual machine; generate, in response to the request, a cryptographically signed credential; store a mapping between the component and the cryptographically signed credential; receive from the component an access request to access at least one memory entry within the certain memory space; and utilize the mapping to retrieve a cryptographically signed credential that is associated with the component.

15. The system according to claim 14 wherein the intermediate entity generates the mapping between the component and the cryptographically signed credential; wherein the component is identified by a unique component identifier.

16. The system according to claim 11 comprising an interface that is coupled to the intermediate entity; wherein the intermediate entity communicates via the interface with another intermediate entity of another system.

17. The method according to claim 1 wherein the virtual machine and the other virtual machines reside on a same physical machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2008
From: BEN-YEHUDA, SHMUEL; MACHULSKY, ZORIK; SATRAN, JULIAN; SEMINARO, EDWARD J.; SHALEV, LEAH; SHIMONY, ILAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020492/0899 →
Continuity (1)
Related Publication 20090204960A1 · Aug 13, 2009