DaaC: device-reserved memory as an eviction-based file cache

Most embedded systems require contiguous memory space to be reserved for each device, which may lead to memory under-utilization. Although several approaches have been proposed to address this issue, they have limitations of either inefficient memory usage or long latency for switching the reserved memory space between a device and general-purpose uses. Our scheme utilizes the reserved memory as an eviction-based file cache. It guarantees contiguous memory allocation to devices while providing idle device memory as an additional file cache called eCache for general-purpose usage. Since the eCache stores only evicted data from in-kernel page cache, memory efficiency is preserved and allocation time for devices is minimized. Cost-based region selection also alleviates additional read I/Os by carefully discarding cached data from the eCache. The prototype is implemented on the Nexus S smartphone and is evaluated with popular Android applications. The evaluation results show that 50%-85% of flash read I/Os are reduced and application launch performance is improved by 8%-16% while the reallocation time is limited to a few milliseconds.

[1]  Yan Zhang,et al.  Empirical evaluation of multi-level buffer cache collaboration for storage systems , 2005, SIGMETRICS '05.

[2]  Hiroyuki Kamezawa,et al.  Hotplug Memory Redux , 2005 .

[3]  Muli Ben-Yehuda,et al.  IOMMU: strategies for mitigating the IOTLB bottleneck , 2010, ISCA'10.

[4]  Muli Ben-Yehuda,et al.  On the DMA mapping problem in direct device assignment , 2010, SYSTOR '10.

[5]  Gil Neiger,et al.  Intel ® Virtualization Technology for Directed I/O , 2006 .

[6]  Dave Hansen,et al.  Hotplug Memory and the Linux VM , 2004 .

[7]  Deborah Estrin,et al.  Diversity in smartphone usage , 2010, MobiSys '10.

[8]  Alan L. Cox,et al.  Protection Strategies for Direct Access to Virtualized I/O Devices , 2008, USENIX Annual Technical Conference.

[9]  Gertrud S. Joachim Memory Efficiency , 1959, JACM.

[10]  Robert Love,et al.  Linux Kernel Development , 2003 .

[11]  John Wilkes,et al.  My Cache or Yours? Making Storage More Exclusive , 2002, USENIX Annual Technical Conference, General Track.

[12]  C. Cascaval,et al.  Calculating stack distances efficiently , 2003, MSP '02.

[13]  Chris Mason,et al.  Transcendent Memory and Linux , 2006 .

[14]  Hwanju Kim,et al.  Rigorous rental memory management for embedded systems , 2013, TECS.

[15]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[16]  Kai Shen,et al.  Virtual Machine Memory Access Tracing with Hypervisor Exclusive Cache , 2007, USENIX Annual Technical Conference.

[17]  Yuanyuan Zhou,et al.  Eviction-based Cache Placement for Storage Caches , 2003, USENIX Annual Technical Conference, General Track.

[18]  Byung-Gon Chun,et al.  TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones , 2010, OSDI.

[19]  Ronald G. Dreslinski,et al.  Full-system analysis and characterization of interactive smartphone applications , 2011, 2011 IEEE International Symposium on Workload Characterization (IISWC).

[20]  吉田 則裕,et al.  Android Open Source Projectを対象としたパッチレビュー活動の調査 , 2012 .