IP Library Granted Patent US 10,289,563
Granted Patent B2
US 10,289,563 · App. 15/407,368 · Granted May 14, 2019

Efficient reclamation of pre-allocated direct memory access (DMA) memory

Inventors: Shay H. Akirav (Petach-Tikva, IL); Oren Bar (Rishon Lezion, IL); Roman Barsky (Netanya, IL); Itay Maoz (Haifa, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F12/1081G06F3/0683G06F9/4401
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,289,563
App. No.
15/407,368
Granted
May 14, 2019
Kind
B2
Abstract

For efficient reclamation of pre-allocated direct memory access (DMA) memory in a computing environment, hot-add random access memory (RAM) is emulated for a general purpose use by reclamation of pre-allocated DMA memory reserved at boot time by notifying a non-kernel use device user that the non-kernel use device has a smaller window, stopping and remapping to the smaller window, and notifying a kernel that new memory has been added, wherein the new memory is a region left after the remap. The hot-add RAM is split into at least two continuous parts.

Claims (51)

1. A method for efficient reclamation of pre-allocated direct memory access (DMA) memory using a processor device in a computing environment, the method comprising:

emulating a hot-add RAM for a general purpose use by reclamation of pre-allocated DMA memory reserved at boot time by:

notifying a non-kernel use device user that the non-kernel use device has a smaller window;

stopping an application requiring the non-kernel use device;

stopping hardware operations of the non-kernel use device by a device driver;

splitting the hot-add RAM into at least two continuous parts;

remapping the hot-add RAM to the smaller window; and

notifying a kernel that new memory has been added, wherein the new memory is a region left after the remap.

2. The method of claim 1 , further including

unmapping a buffer from a kernel virtual mapping system.

3. The method of claim 1 , further including remapping at least one of the two continuous parts of the hot-add RAM for use by DMA memory of the non-kernel use device, wherein the new memory is at least one of the two continuous parts.

4. The method of claim 3 , further including signaling the kernel of the addition of the hot-add RAM.

5. The method of claim 4 , further including performing at least one of:

scanning the at least one of the two continuous parts of the hot-add RAM by the kernel,

perceiving that the least one of the two continuous parts of the hot-add RAM is newly added, and

adding the least one of the two continuous parts of the hot-add RAM to a pool of general purpose memory.

6. The method of claim 5 , further including configuring the non-kernel use device with the buffer of the least one of the two continuous parts of the hot-add RAM.

7. A system for efficient reclamation of pre-allocated direct memory access (DMA) memory in a computing environment, the system comprising:

at least one processor device operable in the computing environment, wherein the at least one processor device:

emulates a hot-add RAM for a general purpose use by reclamation of pre-allocated DMA memory reserved at boot time by:

notifying a non-kernel use device user that the non-kernel use device has a smaller window;

stopping an application requiring the non-kernel use device;

stopping hardware operations of the non-kernel use device by a device driver;

splitting the hot-add RAM into at least two continuous parts;

remapping the hot-add RAM to the smaller window; and

notifying a kernel that new memory has been added, wherein the new memory is a region left after the remap.

8. The system of claim 7 , wherein the at least one processor device unmaps a buffer from a kernel virtual mapping system.

9. The system of claim 7 , wherein the at least one processor device remaps at least one of the two continuous parts of the hot-add RAM for use by DMA memory of the non-kernel use device, wherein the new memory is at least one of the two continuous parts.

10. The system of claim 9 , wherein the at least one processor device signals the kernel of the addition of the hot-add RAM.

11. The system of claim 10 , wherein the at least one processor device performs at least one of:

scanning the at least one of the two continuous parts of the hot-add RAM by the kernel,

perceiving that the least one of the two continuous parts of the hot-add RAM is newly added, and

adding the least one of the two continuous parts of the hot-add RAM to a pool of general purpose memory.

12. The system of claim 11 , wherein the at least one processor device configuring the non-kernel use device with the buffer of the least one of the two continuous parts of the hot-add RAM.

13. A computer program product for efficient reclamation of pre-allocated direct memory access (DMA) memory using a processor device, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

an executable portion that emulates a hot-add random access memory (RAM) for a general purpose use by reclamation of pre-allocated DMA memory reserved at boot time by:

notifying a non-kernel use device user that the non-kernel use device has a smaller window;

stopping an application requiring the non-kernel use device;

stopping hardware operations of the non-kernel use device by a device driver;

splitting the hot-add RAM into at least two continuous parts;

remapping the hot-add RAM to the smaller window; and

notifying a kernel that new memory has been added, wherein the new memory is a region left after the remap.

14. The computer program product of claim 13 , further including an executable portion that

unmaps a buffer from a kernel virtual mapping system.

15. The computer program product of claim 13 , further including an executable portion that remaps at least one of the two continuous parts of the hot-add RAM for use by DMA memory of the non-kernel use device, wherein the new memory is at least one of the two continuous parts.

16. The computer program product of claim 15 , further including an executable portion that signals the kernel of the addition of the hot-add RAM.

17. The computer program product of claim 16 , further including an executable portion that performs at least one of:

scanning the at least one of the two continuous parts of the hot-add RAM by the kernel,

perceiving that the least one of the two continuous parts of the hot-add RAM is newly added, and

adding the least one of the two continuous parts of the hot-add RAM to a pool of general purpose memory.

18. The computer program product of claim 17 , further including an executable portion that configures the non-kernel use device with the buffer of the least one of the two continuous parts of the hot-add RAM.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: AKIRAV, SHAY H.; BAR, OREN; BARSKY, ROMAN; MAOZ, ITAY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040982/0756 →
Continuity (2)
Continuation 14252146 · Apr 14, 2014
Related Publication 20170123998A1 · May 4, 2017