Lossless instruction-to-object memory tracing in the Linux kernel
- 14 June 2021
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the 14th ACM International Conference on Systems and Storage
Abstract
The lack of visibility into Linux's behavior makes it hard to refactor and maintain. To peer inside the box, we present Memorizer, a self-contained, low-level tracing framework that tracks (most) object allocations, data accesses, and function calls within the kernel. The core insight is a low-level object-centric representation that records detailed lifetime information while linking each operation (call/read/write) with its intended target. We evaluate Memorizer using extensive input programs and demonstrate its value by showing how Memorizer can (1) aid in refactoring, (2) extend code coverage with object coverage to improve testing and analysis, and (3) identify leaky abstractions. We also release a large data set, visualization tools, and Memorizer's source. This generic, object-centric approach is the first to provide loss-less instruction-to-object tracing, adding an essential software engineering capability to the overly complex Linux kernel.Keywords
Funding Information
- National Science Foundation (CNS 2008867)
- Office of Naval Research (BAA N00014-17-S-B010)
This publication has 11 references indexed in Scilit:
- Performance Implications of Packet Filtering with Linux eBPFPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2018
- The Scalable Commutativity RuleACM Transactions on Computer Systems, 2015
- Comparing non-adequate test suites using coverage criteriaPublished by Association for Computing Machinery (ACM) ,2013
- ValgrindPublished by Association for Computing Machinery (ACM) ,2007
- PinPublished by Association for Computing Machinery (ACM) ,2005
- A new structural coverage criterion for dynamic detection of program invariantsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Maintainability of the Linux kernelIEE Proceedings - Software, 2002
- Compositional pointer and escape analysis for Java programsACM SIGPLAN Notices, 1999
- ProtectionACM SIGOPS Operating Systems Review, 1974
- On the criteria to be used in decomposing systems into modulesCommunications of the ACM, 1972