ITEC -  Operating Systems Group

Simutrace: A Toolkit for Full System Memory Tracing

  • Author:

    Marc Rittinghaus, Thorsten Groeninger, Frank Bellosa

  • Source:

    White Paper, Operating Systems Group, Karlsruhe Institute of Technology, 2015

  • Date: 05.05.2015
  • Abstract:

    The ongoing increase in software and hardware complexity poses a challenge for researchers, system architects and software developers who need to understand a system's runtime behavior. Traces of executed code paths and memory references as well as interesting events for example in the area of resource management are frequently used to support development and debugging as they provide a valuable insight into the execution. Memory traces place an extraordinary demand on the tracing components due to the fact that the rate at which the processor accesses main memory is inherently higher than the rate of function calls, MPI messages or other system events. While many tracing frameworks for memory traces have been proposed in the past, a major limitation of these frameworks is their restriction to track only selected processes and their inability to monitor privileged system components. Profiles generated with these tools therefore do not encompass memory references performed by the operating system (OS), system daemons or (kernel-mode) drivers. In this white paper, we present Simutrace, a tracing framework for efficient full system memory tracing. Simutrace captures memory accesses at the hardware level, using functional full system simulation for holistic memory traces. Simutrace incorporates an aggressive but fast compressor, making full length, no-loss memory traces of long-running workloads possible.

    BibTex:

    @techreport{rittinghaus15simutracewp,
        title={Simutrace: A Toolkit for Full System Memory Tracing},
        author={Rittinghaus, Marc and Groeninger, Thorsten and Bellosa, Frank},
        institution={Karlsruhe Institute of Technology (KIT), Operating Systems Group},
        type = {White Paper},
        month={May},
        year={2015}
    }