skip to main content
research-article

Controlling physical memory fragmentation in mobile systems

Published:14 June 2015Publication History
Skip Abstract Section

Abstract

Since the adoption of hardware-accelerated features (e.g., hardware codec) improves the performance and quality of mobile devices, it revives the need for contiguous memory allocation. However, physical memory in mobile systems is highly fragmented due to the frequent spawn and exit of processes and the lack of proactive anti-fragmentation scheme. As a result, the memory allocation for large and contiguous I/O buffers suffer from the highly fragmented memory, thereby incurring high CPU usage and power consumption. This paper presents a proactive anti-fragmentation approach that groups pages with the same lifetime, and stores them contiguously in fixed-size contiguous regions. When a process is killed to secure free memory, a set of contiguous regions are freed and subsequent contiguous memory allocations can be easily satisfied without incurring additional overhead. Our prototype implementation on a Nexus 10 tablet with the Android kernel shows that the proposed scheme greatly alleviates fragmentation, thereby reducing the I/O buffer allocation time, associated CPU usage, and energy consumption.

References

  1. Android kernel features. URL http://elinux.org/ Android_Kernel_Features.Google ScholarGoogle Scholar
  2. N. Amit, M. Ben-Yehuda, and B.-A. Yassour. Iommu: Strategies for mitigating the iotlb bottleneck. In Proceedings of the 2010 International Conference on Computer Architecture (ISCA ’10), pages 256–274, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Android. Managing the activity lifecycle, October 2013. URL http://developer.android.com/training/basics/ activity-lifecycle/index.html.Google ScholarGoogle Scholar
  4. Android, January 2015. URL http://www.android.com.Google ScholarGoogle Scholar
  5. D. F. Bacon, P. Cheng, and V. Rajan. Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In Proceedings of the 2003 Conference on Language, Compilers, and Tools for Embedded Systems (LCTES ’03), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. A. Barrett and B. G. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of the 1993 Programming Language Design and Implementation (PLDI ’93), pages 187–196, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Ben-Yehuda, J. Xenidis, M. Ostrowski, K. Rister, A. Bruemmer, and L. Van Doorn. The price of safety: Evaluating IOMMU performance. In Proceedings of the 2007 Ottawa Linux Symposium (OLS ’07), pages 9–20, July 2007.Google ScholarGoogle Scholar
  8. E. D. Berger, B. G. Zorn, and K. S. McKinley. Reconsidering custom memory allocation. In Proceedings of the 2002 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA ’02), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Bonwick. The slab allocator: An object-caching kernel memory allocator. In Proceedings of the USENIX Summer 1994 Technical Conference (USTC ’94), volume 1, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. S. Craciunas, C. M. Kirsch, H. Payer, A. Sokolova, H. Stadler, and R. Staudinger. A compacting real-time memory management system. In Proceedings of the 2008 USENIX Annual Technical Conference (USENIX ATC ’08), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. H. Falaki, R. Mahajan, S. Kandula, D. Lymberopoulos, R. Govindan, and D. Estrin. Diversity in smartphone usage. In Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services (MobiSys ’10), pages 179–194, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Gorman and P. Healy. Measuring the impact of the Linux memory management. In Proceedings of the 2005 Libre Software Meeting (LSM ’05), 2005.Google ScholarGoogle Scholar
  13. M. Gorman and A. Whitcroft. The what, the why and the where to of anti-fragmentation. In Proceedings of the 2006 Ottawa Linux Symposium (OLS ’06), pages 369–384, 2006.Google ScholarGoogle Scholar
  14. M. Gorman and A. Whitcroft. Supporting the allocation of large contiguous regions of memory. In Proceedings of the 2007 Ottawa Linux Symposium (OLS ’07), pages 141–152, 2007.Google ScholarGoogle Scholar
  15. D. Hackborn. Multitasking the Android way, 2010. URL http://android-developers.blogspot.kr/2010/04/ multitasking-android-way.html.Google ScholarGoogle Scholar
  16. D. R. Hanson. Fast allocation and deallocation of memory based on object lifetimes. Software-Practice and Experience, 20:6–12, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. hun Kim, J. Jeong, and J. Lee. Selective memory deduplication for cost efficiency in mobile smart devices. IEEE Transactions on Consumer Electronics, 60(2):276–284, May 2014.Google ScholarGoogle ScholarCross RefCross Ref
  18. J. Jeong, H. Kim, J. Hwang, J. Lee, and S. Maeng. DaaC: device-reserved memory as an eviction-based file cache. In Proceedings of the 2012 International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES ’12), pages 191–200, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Jeong, H. Kim, J. Hwang, J. Lee, and S. Maeng. Rigorous rental memory management for embedded systems. ACM Transactions on Embedded Computing Systems, 12(1s):43:1– 43:21, March 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. S. Johnstone and P. R. Wilson. The memory fragmentation problem: Solved? In Proceedings of the 1998 International Symposium on Memory Management (ISMM ’98), pages 26– 36, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. Lieberman and C. Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419–429, June 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. Love. Linux Kernel Development. Addison-Wesley Professional, 3rd edition, 2010. ISBN 9780672329463. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Mijat and A. Nightingale. Virtualization is coming to a platform near you, 2011.Google ScholarGoogle Scholar
  24. R. Morad, M. Hirzel, E. K. Kolodner, and M. Sagiv. Efficient memory management for long-lived objects. Technical Report TR-RC24794, IBM Research, 2009.Google ScholarGoogle Scholar
  25. J. Navarro, S. Iyer, P. Druschel, and A. Cox. Practical, transparent operating system support for superpages. In Proceedings of the 5th Symposium on Operating Systems Design and Implementation (OSDI ’02), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Open webOS, January 2015. URL http://www. openwebosproject.org.Google ScholarGoogle Scholar
  27. OProfile. Oprofile: A system profiler for Linux. URL http: //oprofile.sourceforge.net/news/.Google ScholarGoogle Scholar
  28. Z. Pfeffer. The virtual contiguous memory manager. In Proceedings of the 2010 Ottawa Linux Symposium (OLS ’10), pages 225–230, 2010.Google ScholarGoogle Scholar
  29. A. Rahmati, C. Shepard, C. Tossell, M. Dong, Z. Wang, L. Zhong, and P. Kortum. Tales of 34 iPhone users: How they change and why they are different. Technical Report TR-2011- 0624, 2011.Google ScholarGoogle Scholar
  30. D. Seal. ARM Architecture Reference Manual. Addison-Wesley Longman Publishing Co., Inc., 2nd edition, 2000. ISBN 0201737191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. Shepard, A. Rahmati, C. Tossell, L. Zhong, and P. Kortum. LiveLab: measuring wireless networks and smartphone users in the field. Performance Evaluation Review, 38(3):15–20, January 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. Stefanovic, K. S. McKinley, and J. E. B. Moss. Agebased garbage collection. In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA ’99), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. The Linux Foundation. Tizen: An open source, standardsbased software platform for multiple device categories, January 2015. URL http://www.tizen.org.Google ScholarGoogle Scholar
  34. D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Proceedings of the First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (SDE ’84), pages 157–167, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. T. Yan, D. Chu, D. Ganesan, A. Kansal, and J. Liu. Fast app launching for mobile devices using predictive user context. In Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services (MobiSys ’12), pages 113–126, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. B.-A. Yassour, M. Ben-Yehuda, and O. Wasserman. On the DMA mapping problem in direct device assignment. In Proceedings of the 3rd Annual Haifa Experimental Systems Conference (SYSTOR ’10), pages 18:1–18:12, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. C. Yeoh. Managing memory in variable sized chunks. In linux.conf.au, 2006.Google ScholarGoogle Scholar
  38. T. M. Zeng. The Android ION memory allocator, February 2012. URL http://lwn.net/Article/480055.Google ScholarGoogle Scholar

Index Terms

  1. Controlling physical memory fragmentation in mobile systems

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 50, Issue 11
          ISMM '15
          November 2015
          156 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2887746
          Issue’s Table of Contents
          • cover image ACM Conferences
            ISMM '15: Proceedings of the 2015 International Symposium on Memory Management
            June 2015
            156 pages
            ISBN:9781450335898
            DOI:10.1145/2754169

          Copyright © 2015 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 June 2015

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!