Abstract-Data provenance strives for explaining how the computation was performed by recording a trace of the execution. The provenance trace is useful across a wide-range of workflows to improve the dependability, security, and efficiency of software systems. In this paper, we present INSPECTOR, a POSIX-compliant data provenance library for shared-memory multithreaded programs. The INSPECTOR library is completely transparent and easy to use: it can be used as a replacement for the pthreads library by a simple exchange of libraries linked, without even recompiling the application code. To achieve this result, we present a parallel provenance algorithm that records control, data, and schedule dependencies using a Concurrent Provenance Graph (CPG). We implemented our algorithm to operate at the compiled binary code level by leveraging a combination of OS-specific mechanisms, and recently released Intel PT ISA extensions as part of the Broadwell micro-architecture. Our evaluation on a multicore platform using applications from multithreaded benchmarks suites (PARSEC and Phoenix) shows reasonable provenance overheads for a majority of applications. Lastly, we briefly describe three case-studies where the generic interface exported by INSPECTOR is being used to improve the dependability, security, and efficiency of systems. The INSPECTOR library is publicly available for further use in a wide range of other provenance workflows.
Jörg et al. in REF present a data parallel provenance algorithm which uses Intel PT for improving security and dependability in software.
INSPECTOR: Data Provenance Using Intel Processor Trace (PT)
2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS)
2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS)
Computer Science