skip to main content
research-article

A framework for application guidance in virtual memory systems

Published:16 March 2013Publication History
Skip Abstract Section

Abstract

This paper proposes a collaborative approach in which applications can provide guidance to the operating system regarding allocation and recycling of physical memory. The operating system incorporates this guidance to decide which physical page should be used to back a particular virtual page. The key intuition behind this approach is that application software, as a generator of memory accesses, is best equipped to inform the operating system about the relative access rates and overlapping patterns of usage of its own address space. It is also capable of steering its own algorithms in order to keep its dynamic memory footprint under check when there is a need to reduce power or to contain the spillover effects from bursts in demand. Application software, working cooperatively with the operating system, can therefore help the latter schedule memory more effectively and efficiently than when the operating system is forced to act alone without such guidance. It is particularly difficult to achieve power efficiency without application guidance since power expended in memory is a function not merely of the intensity with which memory is accessed in time but also how many physical ranks are affected by an application's memory usage.

Our framework introduces an abstraction called "colors" for the application to communicate its intent to the operating system. We modify the operating system to receive this communication in an efficient way, and to organize physical memory pages into intermediate level grouping structures called "trays" which capture the physically independent access channels and self-refresh domains, so that it can apply this guidance without entangling the application in lower level details of power or bandwidth management.

This paper describes how we re-architect the memory management of a recent Linux kernel to realize a three way collaboration between hardware, supervisory software, and application tasks.

References

  1. V. Anagnostopoulou, M. Dimitrov, and K. A. Doshi. Sla-guided energy savings for enterprise servers. In IEEE International Symposium on Performance Analysis of Systems and Software, pages 120--121, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. G. Banga, P. Druschel, and J. C. Mogul. Resource containers: a new facility for resource management in server systems. In Proceedings of the third symposium on Operating systems design and implementation, OSDI '99, pages 45--58. USENIX Association, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Belay, A. Bittau, A. Mashtizadeh, D. Terei, D. Mazières, and C. Kozyrakis. Dune: safe user-level access to privileged cpu features. In Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation, OSDI'12, pages 335--348. USENIX Association, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Bi, R. Duan, and C. Gniady. Delay-Hiding energy management mechanisms for DRAM. In International Symposium on High Performance Computer Architecture, pages 1--10, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  5. VanDrunen, von Dincklage, and Wiedermann}dacapo S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 169--190, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. D. Brown and T. C. Mowry. Taming the memory hogs: using compiler-inserted releases to manage physical memory intelligently. In Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4, OSDI'00. USENIX Association, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Corbet. Memory Compaction, Jan. 2010. URL http://lwn.net/Articles/368869/.Google ScholarGoogle Scholar
  8. V. Delaluz, A. Sivasubramaniam, M. Kandemir, N. Vijaykrishnan, and M. Irwin. Scheduler-based dram energy management. In Design Automation Conference, pages 697--702, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. R. Engler, M. F. Kaashoek, and J. O'Toole, Jr. Exokernel: an operating system architecture for application-level resource management. SIGOPS Oper. Syst. Rev., 29 (5): 251--266, Dec. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. X. Fan, C. Ellis, and A. Lebeck. Modeling of dram power control policies using deterministic and stochastic petri nets. In Power-Aware Computer Systems, pages 37--41, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Georges, D. Buytaert, and L. Eeckhout. Statistically Rigorous Java Performance Evaluation. In ACM SIGPLAN conference on Object-oriented programming systems and applications, pages 57--76, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. Gonzalez. Android Linux Kernel Additions, 2010. URL http://www.lindusembedded.com/blog/2010/12/07/android-linux-kernel-additions/.Google ScholarGoogle Scholar
  13. http://lwn.net/Articles/445045/. Ankita Garg: Linux VM Infrastructure to support Memory Power Management, 2011.Google ScholarGoogle Scholar
  14. http://www.acpi.info/spec.htm. Advanced Configuration and Power Interface Specification, 2011.Google ScholarGoogle Scholar
  15. http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper150215.pdf. Memory Management in the Java HotSpot Virtual Machine, April 2006.Google ScholarGoogle Scholar
  16. http://www.oracle.com/technetwork/java/whitepaper 135217.html. Oracle HotSpot JVM, 2012.Google ScholarGoogle Scholar
  17. http://www.spec.org/jvm2008/. SPECjvm2008, 2008.Google ScholarGoogle Scholar
  18. H. Huang, P. Pillai, and K. Shin. Design and Implementation of Power-aware Virtual Memory. In USENIX Annual Technical Conference, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. E. Kessler and M. D. Hill. Page placement algorithms for large real-indexed caches. ACM Trans. Comput. Syst., 10 (4): 338--359, Nov. 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Kleen. A numa api for linux. SUSE Labs white paper, August 2004.Google ScholarGoogle Scholar
  21. A. R. Lebeck, X. Fan, H. Zeng, and C. Ellis. Power aware page allocation. ACM SIGOPS Operating Systems Review, 34 (5): 105--116, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. C. Lefurgy, K. Rajamani, F. Rawson, W. Felter, M. Kistler, and T. W. Keller. Energy management for commercial servers. Computer, 36 (12): 39--48, Dec. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C.-H. Lin, C.-L. Yang, and K.-J. King. Ppt: joint performance/power/thermal management of dram memory for multi-core systems. In ACM/IEEE International Symposium on Low Power Electronics and Design, pages 93--98, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. L. Lu, P. Varman, and K. Doshi. Decomposing workload bursts for efficient storage resource management. IEEE Transactions on Parallel and Distributed Systems, 22 (5): 860 --873, may 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Magenheimer, C. Mason, D. McCracken, and K. Hackel. Transcendent memory and linux. In Ottawa Linux Symposium, pages 191--200, 2009.Google ScholarGoogle Scholar
  26. P. Petrov and A. Orailoglu. Virtual page tag reduction for low-power tlbs. In IEEE International Conference on Computer Design, pages 371--374, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. J. M. Velasco, D. Atienza, and K. Olcoz. Memory power optimization of java-based embedded systems exploiting garbage collection information. Journal of Systems Architecture - Embedded Systems Design, 58 (2): 61--72, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. H. Wang, K. Doshi, and P. Varman. Nested qos: Adaptive burst decomposition for slo guarantees in virtualized servers. Intel Technology Journal, June, 16:2 2012.Google ScholarGoogle Scholar
  29. P. Zhou, V. Pandey, J. Sundaresan, A. Raghuraman, Y. Zhou, and S. Kumar. Dynamic tracking of page miss ratio curve for memory management. In Proceedings of the 11th international conference on Architectural support for programming languages and operating systems, ASPLOS XI, pages 177--188. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A framework for application guidance in virtual memory 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

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!