Indonesian Journal of Electrical Engineering and Computer Science Vol. 25, No. 3, March 2022, pp. 1607~1614 ISSN: 2502-4752, DOI: 10.11591/ijeecs.v25.i3.pp1607-1614 1607 Journal homepage: http://ijeecs.iaescore.com An approach towards improvement of contiguous memory allocation linux kernel: a review Anmol Suryavanshi, Sanjeevkumar Sharma Department of Computer Science and Engineering, Faculty of Computer Science and Engineering, Oriental University, Madhya Pradesh, India Article Info ABSTRACT Article history: Received Jul 10, 2021 Revised Jan 4, 2022 Accepted Jan 12, 2022 The demand of contiguous memory allocation has been expanded in day-to- day life in all the devices. It is achieved in existing systems by using various reservation techniques. There are various other methods to achieve the goal of contiguous memory allocation in linux kernel such as, input output memory management units (IOMMU’s), scatter/gather direct memory access (DMA) and reserved static memory at boot time. But these solutions have its own drawbacks such as, IOMMU requires hardware. However, the configuration of additional hardware's increases the cost. The power consumption of the system and the reserved static memory in the system goes waste when not in used for specific purpose. It is very difficult to access contiguous memory in low-end devices that are unable to provide real contiguous memory. There is one existing method called contiguous memory allocator (CMA), which provides dynamic contiguous memory. It overcomes most of the problems but CMA itself has some drawbacks, which do not provide the guarantee of failure in future of contiguous memory. The motivation behind this study is to review existing contiguous memory allocation (CMA) method by identifying and removing its drawbacks. Keywords: Contiguous memory allocator Input-output memory management units Reservation techniques Scatter/gather direct memory access This is an open access article under the CC BY-SA license. Corresponding Author: Anmol Suryavanshi Department of Computer Science and Engineering, Faculty of Computer Science and Engineering Oriental University Indore, Madhya Pradesh, India Email: eranmol89@gmail.com, anmol.suryavanshi@svkm.ac.in 1. INTRODUCTION Nowadays, the requirement for physical contiguous memory allocation is extremely demanded. Particularly in low-end 32-bit devices as the currently available solutions are not sufficient. The frequently used method is reservation technique. Even though it serves memory allocation in good manner, yet it can seriously downgrade the memory usage or wastage of reserved memory. Although, there are some hardware solutions such as scatter/gather direct memory access (DMA) and input output memory management unit (IOMMU) for resolving this issue. However, the cost of this additional hardware is much more for the low- end 32-bit devices. contiguous memory allocator (CMA) is a linux software product that targets to resolve memory allocation as well as efficient memory utilization issues. There are different devices on embedded frameworks, that have no scatter/gather DMA or IOMMU facility and contiguous memory blocks for allocation [1], [2]. They incorporate devices like cameras and hardware video decoders-encoders. However, such devices regularly requires large memory that makes systems inadfigequate. Some embedded devices force extra necessities on the buffers. For example, they can just operate on buffers allocated in specific memory bank (if one or more memory bank available in the system) or buffers allocated to a specific memory limit. The enormous growth has been observed in the development of embedded devices recently