Sun 14 Jun 2015 10:10 - 10:35 at C123 - Mobile Systems Chair(s): Hans-J. Boehm

In mobile systems, physical memory is highly fragmented due to frequent spawn/exit of processes and the lack of proactive physical memory anti-fragmentation. While the adoption of hardware-accelerated features improves the performance and quality of mobile devices, large, contiguous I/O buffer allocations suffer from the highly fragmented memory, thereby incurring high CPU usage and power consumption. The previous approach for de-fragmenting physical memory has been acceptable for a few contiguous memory allocations, but is not scalable to a large volume of frequent I/O buffer allocations.

This paper presents a proactive anti-fragmentation approach that groups a set of pages having the same lifetime and stores them contiguously in a fixed-size, contiguous region. This grouping of pages is viable in mobile systems because the virtual memory pages, which are the dominant memory consumer, of a process (or an application) are allocated independently but deallocated together. Accordingly, when a process is killed to secure free memory, a set of contiguous regions are freed and the following contiguous memory allocation can be easily satisfied without incurring high CPU overhead. Our prototype implementation on the Nexus 10 tablet with the Linux kernel showed that the proposed scheme greatly improved the fragmentation, thereby reducing the large-size I/O buffer allocation time, associated CPU and energy consumption.