2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS) (2016)
June 27, 2016 to June 30, 2016
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/ICDCS.2016.86
Data provenance strives for explaining how thecomputation was performed by recording a trace of the execution. The provenance trace is useful across a wide-range of workflowsto improve the dependability, security, and efficiency of softwaresystems. In this paper, we present Inspector, a POSIX-compliantdata provenance library for shared-memory multithreadedprograms. The Inspector library is completely transparent andeasy to use: it can be used as a replacement for the pthreadslibrary by a simple exchange of libraries linked, without evenrecompiling the application code. To achieve this result, we present a parallel provenancealgorithm that records control, data, and schedule dependenciesusing a Concurrent Provenance Graph (CPG). We implementedour algorithm to operate at the compiled binary code levelby leveraging a combination of OS-specific mechanisms, andrecently released Intel PT ISA extensions as part of the Broadwellmicro-architecture. Our evaluation on a multicore platform usingapplications from multithreaded benchmarks suites (PARSECand Phoenix) shows reasonable provenance overheads for amajority of applications. Lastly, we briefly describe three case-studies where thegeneric interface exported by Inspector is being used toimprove the dependability, security, and efficiency of systems. The Inspector library is publicly available for further use in awide range of other provenance workflows.
Synchronization, Libraries, Instruction sets, Schedules, Security, Memory management, Data models
J. Thalheim, P. Bhatotia and C. Fetzer, "INSPECTOR: Data Provenance Using Intel Processor Trace (PT)," 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS), Nara, Japan, 2016, pp. 25-34.