IP Library Granted Patent US 9,582,223
Granted Patent B2
US 9,582,223 · App. 14/252,146 · Granted Feb 28, 2017

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

Inventors: Shay H. Akirav (Petach-Tikva, IL); Oren Bar (Rishon Lezion, IL); Roman Barsky (Natanya, IL); Itay Maoz (Haifa, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0683G06F9/4401G06F12/1081
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,582,223
App. No.
14/252,146
Granted
Feb 28, 2017
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 for responding to an emergency 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.

Claims (41)

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 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;

stopping the application requiring the non-kernel use device;

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

unmapping a buffer from a kernel virtual mapping system.

2. The method of claim 1 , further including splitting the hot-add RAM into at least two continuous parts.

3. The method of claim 2 , 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 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 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,

stops the application requiring the non-kernel use device,

stops operations of the non-kernel use device by a device driver, and

unmaps a buffer from a kernel virtual mapping system.

8. The system of claim 7 , wherein the at least one processor device splits the hot-add RAM into at least two continuous parts.

9. The system of claim 8 , 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:

a first 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 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; and

a second executable portion that stops the application requiring the non-kernel use device,

stops operations of the non-kernel use device by a device driver, and

unmaps a buffer from a kernel virtual mapping system.

14. The computer program product of claim 13 , further includes a third executable portion that performs at least one of:

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

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.

15. The computer program product of claim 14 , further includes a fourth executable portion that signals the kernel of the addition of the hot-add RAM.

16. The computer program product of claim 15 , further includes a fifth 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.

17. The computer program product of claim 16 , further includes a sixth 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 Apr 14, 2014
From: AKIRAV, SHAY H.; BAR, OREN; BARSKY, ROMAN; MAOZ, ITAY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032667/0919 →
Continuity (1)
Related Publication 20150293841A1 · Oct 15, 2015