Abstract

The demand for Contiguous Memory Allocation (CMA) has witnessed significant growth in both low-end and high-end devices in recent years. However, the existing practices for utilizing CMA prove insufficient, particularly when catering to the needs of low-end (32-bit) devices. CMA, a Linux program used for memory reservation and allocation, faces limitations in its current implementations. Presently, techniques such as Scatter-Gather Direct Memory Access (DMA), Input Output Memory Management Unit (IOMMU), and Memory Reservation are commonly employed for contiguous memory allocation. Unfortunately, these methods are financially impractical for low-end devices and struggle to efficiently allocate substantial memory chunks, leading to latency concerns. In this paper, we introduce an improved CMA approach that intelligently allocates virtual memory for data mapping as needed. Alternatively, it directly allocates and deallocates physical memory without the necessity of virtual memory mapping, employing the DMA_KERNEL_NO_MAPPING attribute within the DMA Application Programming Interface (API). By adopting this method, latency is reduced, and the facilitation of larger memory allocations is promoted, addressing the limitations of the current techniques.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call