Abstract
Page protection is often used to achieve memory access monitoring in many applications, dealing with program-analysis, checkpoint-based failure recovery, and garbage collection in managed runtime systems. Typically, low overhead access monitoring is limited by the relatively large page-level granularity of memory management unit hardware support for virtual memory protection. In this paper, we improve upon traditional page-level mechanisms by additionally using hardware support for virtualization in order to achieve fine and flexible granularities that can be smaller than a page. We first introduce a memory allocator based on page protection that can achieve fine-grained monitoring. Second, we explain how virtualization hardware support can be used to achieve dynamic adjustment of the monitoring granularity. In all, we propose a process-level virtual machine to achieve dynamic and fine-grained monitoring. Any application can run on our process-level virtual machine without modification. Experimental results for an incremental checkpoint tool provide a use-case to demonstrate our work. Comparing with traditional page-based checkpoint, our work can effectively reduce the amount of checkpoint data and improve performance.
- M. Abadi, T. Harris, and M. Mehrara. Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In ACM Sigplan Notices, volume 44, pages 185--196. ACM, 2009. Google Scholar
Digital Library
- AMD. Secure virtual machine architecture reference manual. Technical report, Advanced Micro Devices, May 2005.Google Scholar
- A. W. Appel and K. Li. Virtual memory primitives for user programs. Acm Sigplan Notices, 26(4):96--107, 1991. Google Scholar
Digital Library
- M. Arnold and B. G. Ryder. A framework for reducing the cost of instrumented code. Acm Sigplan Notices, 36(5):168--179, 2001. Google Scholar
Digital Library
- A. Belay, A. Bittau, A. J. Mashtizadeh, D. Terei, D. Mazières, and C. Kozyrakis. Dune: Safe user-level access to privileged cpu features. In OSDI, pages 335--348, 2012.Google Scholar
Digital Library
- T. Bergan, O. Anderson, J. Devietti, L. Ceze, and D. Grossman. Coredet: a compiler and runtime system for deterministic multithreaded execution. In ACM SIGARCH Computer Architecture News, volume 38, pages 53--64. ACM, 2010. Google Scholar
Digital Library
- E. D. Berger and B. G. Zorn. Diehard: probabilistic memory safety for unsafe languages. In ACM SIGPLAN Notices, volume 41, pages 158--168. ACM, 2006. Google Scholar
Digital Library
- E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: A scalable memory allocator for multithreaded applications. ACM Sigplan Notices, 35(11):117--128, 2000. Google Scholar
Digital Library
- H.-J. Boehm, A. J. Demers, and S. Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991. Google Scholar
Digital Library
- J. S. Chase, H. M. Levy, M. J. Feeley, and E. D. Lazowska. Sharing and protection in a single-address-space operating system. ACM Transactions on Computer Systems (TOCS), 12(4):271--307, 1994. Google Scholar
Digital Library
- J. Devietti, B. Lucia, L. Ceze, and M. Oskin. Dmp: deterministic shared memory multiprocessing. In ACM SIGARCH Computer Architecture News, volume 37, pages 85--96. ACM, 2009. Google Scholar
Digital Library
- D. Dhurjati and V. Adve. Efficiently detecting all dangling pointer uses in production servers. In Dependable Systems and Networks, 2006. DSN 2006. International Conference on, pages 269--280. IEEE, 2006. Google Scholar
Digital Library
- X. Dong, Y. Xie, N. Muralimanohar, and N. P. Jouppi. Hybrid checkpointing using emerging nonvolatile memories for future exascale systems. ACM Transactions on Architecture and Code Optimization (TACO), 8(2):6, 2011. Google Scholar
Digital Library
- B. Fitzpatrick. Distributed caching with memcached. Linux journal, 2004(124):5, 2004.Google Scholar
- S. Ghemawat and P. Menage. Tcmalloc: Thread-caching malloc. goog-perftools. sourceforge. net/doc/tcmalloc. html, 2009.Google Scholar
- M. Hirabayashi. Tokyo cabinet: a modern implementation of dbm, 2010.Google Scholar
- Intel. Intel r 64 and ia-32 architectures software developers manual. Volume 3b: System Programming Guide (Part 2), pages 14--19, 2013.Google Scholar
- Intel. Page modification logging for virtual machine monitor white paper. http://www.intel.com/, Jan. 2015.Google Scholar
- S. Kannan, A. Gavrilovska, K. Schwan, and D. Milojicic. Optimizing checkpoints using nvm as virtual memory. In Parallel & Distributed Processing (IPDPS), 2013 IEEE 27th International Symposium on, pages 29--40. IEEE, 2013. Google Scholar
Digital Library
- A. Kivity, Y. Kamay, D. Laor, U. Lublin, and A. Liguori. kvm: the linux virtual machine monitor. In Proceedings of the Linux Symposium, volume 1, pages 225--230, 2007.Google Scholar
- C. Lattner and V. Adve. Llvm: A compilation framework for lifelong program analysis & transformation. In Code Generation and Optimization, 2004. CGO 2004. International Symposium on, pages 75--86. IEEE, 2004. Google Scholar
Cross Ref
- K. I. Li. Virtual Memory Primitives for User Programs. ACM, 2003.Google Scholar
- T. Liu, C. Curtsinger, and E. D. Berger. Dthreads: efficient deterministic multithreading. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles, pages 327--336. ACM, 2011. Google Scholar
Digital Library
- K. Lu, X. Zhou, T. Bergan, and X. Wang. Efficient deterministic multithreading without global barriers. In ACM SIGPLAN Notices, volume 49, pages 287--300. ACM, 2014. Google Scholar
Digital Library
- C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In ACM Sigplan Notices, volume 40, pages 190--200. ACM, 2005. Google Scholar
Digital Library
- V. B. Lvin, G. Novark, E. D. Berger, and B. G. Zorn. Archipelago: trading address space for reliability and security. In ACM SIGOPS Operating Systems Review, volume 42, pages 115--124. ACM, 2008. Google Scholar
Digital Library
- C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp: Stanford transactional applications for multi-processing. In Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on, pages 35--46. IEEE, 2008.Google Scholar
Cross Ref
- N. Nethercote and J. Seward. Valgrind: a framework for heavyweight dynamic binary instrumentation. In ACM Sigplan notices, volume 42, pages 89--100. ACM, 2007. Google Scholar
Digital Library
- G. Novark and E. D. Berger. Dieharder: securing the heap. In Proceedings of the 17th ACM conference on Computer and communications security, pages 573--584. ACM, 2010. Google Scholar
Digital Library
- M. Payer, E. Kravina, and T. R. Gross. Lightweight memory tracing. In USENIX Annual Technical Conference, pages 115--126, 2013.Google Scholar
- M. Probst. Dynamic binary translation. In UKUUG Linux Developers Conference, volume 2002. sn, 2002.Google Scholar
- S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems (TOCS), 15(4):391--411, 1997. Google Scholar
Digital Library
- J. Shen, M. Hamal, and S. Ganzenmüller. Dynamic memory allocation on real-time linux. Architecture, 86:32.Google Scholar
- R. Uhlig, G. Neiger, D. Rodgers, A. L. Santoni, F. Martins, A. V. Anderson, S. M. Bennett, A. Kägi, F. H. Leung, and L. Smith. Intel virtualization technology. Computer, 38(5):48--56, 2005. Google Scholar
Digital Library
Recommendations
Flexible Page-level Memory Access Monitoring Based on Virtualization Hardware
VEE '17: Proceedings of the 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution EnvironmentsPage protection is often used to achieve memory access monitoring in many applications, dealing with program-analysis, checkpoint-based failure recovery, and garbage collection in managed runtime systems. Typically, low overhead access monitoring is ...
PMemTrace: Lightweight and Efficient Memory Access Monitoring for Persistent Memory
Algorithms and Architectures for Parallel ProcessingAbstractPersistent memory gains increasing popularity in recent years. Many persistent memory systems leverage memory access monitoring to achieve user-transparent crash consistency enforcement. However, traditional program analysis-oriented memory access ...
Selective hardware/software memory virtualization
VEE '11As virtualization becomes a key technique for supporting cloud computing, much effort has been made to reduce virtualization overhead, so a virtualized system can match its native performance. One major overhead is due to memory or page table ...







Comments