IP Library › Granted Patent US 9,037,753
Granted Patent B2
US 9,037,753 · App. 14/013,094 · Granted May 19, 2015

Automatic pinning and unpinning of virtual pages for remote direct memory access

Inventors: Xavier R. Guerin (White Plains, NY); Xiaoqiao Meng (Yorktown Heights, NY); David P. Olshefski (New York, NY); John M. Tracey (Scarsdale, NY)
Assignee: International Business Machines Corporation
G06F15/17331
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 9,037,753
App. No.
14/013,094
Granted
May 19, 2015
Kind
B2
Abstract

In one exemplary embodiment, a computer-implemented method includes receiving, at a remote direct memory access (RDMA) device, a plurality of RDMA requests referencing a plurality of virtual pages. Data transfers are scheduled for the plurality of virtual pages, wherein the scheduling occurs at the RDMA device. The number of the virtual pages that are currently pinned is limited for the RDMA requests based on a predetermined pinned page limit.

Claims (34)

1. A computer-implemented method, comprising:

receiving, at a remote direct memory access (RDMA) device, a plurality of RDMA requests from two or more user applications, wherein the plurality of RDMA requests reference a plurality of virtual pages;

scheduling data transfers for the two or more user applications, wherein the scheduling occurs at the RDMA device, wherein the scheduling comprises:

ordering the plurality of RDMA requests according to when they were received; and

performing a first RDMA request out of order based on the first RDMA request referencing a virtual page that is currently pinned; and

limiting the number of the virtual pages that are currently pinned for the RDMA requests based on a predetermined pinned page limit.

2. The method of claim 1 , further comprising:

generating a pin fault related to a first virtual page of the plurality of virtual pages, the pin fault being generated by the RDMA device, wherein the first virtual page is pinned and registered in response to the pin fault.

3. The method of claim 1 , further comprising:

determining, by the RDMA device, whether the first virtual page of the plurality of virtual pages is currently pinned.

4. The method of claim 1 , further comprising:

completing a first subset of the plurality of RDMA requests, wherein a second subset of the RDMA requests has yet to be completed; and

determining whether a first virtual page that is currently pinned is referenced by the second subset of the RDMA requests.

5. The method of claim 1 , wherein scheduling data transfers for the plurality of virtual pages comprises managing an amount of time taken in total to pin the plurality of virtual pages for the plurality of RDMA requests.

6. The method of claim 1 , wherein scheduling data transfers for the plurality of virtual pages comprises giving priority to a first subset of the plurality of virtual pages, and wherein the first subset comprises virtual pages that are currently pinned.

7. The method of claim 1 , further comprising:

predicting that a first RDMA request will be received referencing a first virtual page; and

requesting that the first virtual page be pinned based on the prediction.

8. A computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied thereon, the computer readable program code executable by a processor to perform a method comprising:

receiving, at a remote direct memory access (RDMA) device, a plurality of RDMA requests from two or more user applications, wherein the plurality of RDMA requests reference a plurality of virtual pages;

scheduling data transfers for the two or more user applications, wherein the scheduling occurs at the RDMA device, wherein the scheduling comprises:

ordering the plurality of RDMA requests according to when they were received; and

performing a first RDMA request out of order based on the first RDMA request referencing a virtual page that is currently pinned; and

limiting the number of the virtual pages that are currently pinned for the RDMA requests based on a predetermined pinned page limit.

9. The computer program product of claim 8 , further comprising:

generating a pin fault related to a first virtual page of the plurality of virtual pages, the pin fault being generated by the RDMA device, wherein the first virtual page is pinned and registered in response to the pin fault.

10. The computer program product of claim 8 , further comprising:

completing a first subset of the plurality of RDMA requests, wherein a second subset of the RDMA requests has yet to be completed; and

determining whether a first virtual page that is currently pinned is referenced by the second subset of the RDMA requests.

11. The computer program product of claim 8 , wherein scheduling data transfers for the plurality of virtual pages comprises managing an amount of time taken in total to pin the plurality of virtual pages for the plurality of RDMA requests.

12. The computer program product of claim 8 , wherein scheduling data transfers for the plurality of virtual pages comprises giving priority to a first subset of the plurality of virtual pages, and wherein the first subset comprises virtual pages that are currently pinned.

13. The computer program product of claim 8 , further comprising:

predicting that a first RDMA request will be received referencing a first virtual page; and

requesting that the first virtual page be pinned based on the prediction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2013
From: GUERIN, XAVIER R.; MENG, XIAOQIAO; OLSHEFSKI, DAVID P.; TRACEY, JOHN M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031107/0117 →
Continuity (1)
Related Publication 20150067085A1 · Mar 5, 2015