Collecting whole-system reference traces of multiprogrammed and multithreaded workloads

  • Authors:
  • Scott F. Kaplan

  • Affiliations:
  • Amherst College, Amherst, MA

  • Venue:
  • WOSP '04 Proceedings of the 4th international workshop on Software and performance
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The simulated evaluation of memory management policies relies on reference traces--logs of memory operations performed by running processes. No existing approach to reference trace collection is applicable to a complete system, including the kernel and all processes. Specifically, none gather sufficient information for simulating the virtual memory management, the filesystem cache management, and the scheduling of a multiprogrammed, multithreaded workload. Existing trace collectors are also difficult to maintain and to port, making them partially or wholly unusable on many modern systems.We present Laplace, a trace collector that can log every memory reference that a system performs. Laplace is implemented through modifications to a simulated processor and an operating system kernel. Because it collects references at the simulated CPU layer, Laplace produces traces that are complete and minimally distorted. Its modified kernel also logs selected events that a post-processor uses to associate every virtual memory and filesystem reference with its thread. It also uses this information to reconcile all uses of shared memory, which is a task that is more complex than previously believed. Laplace is capable of tracing a workload without modifications to any source, library, or executable file. Finally, Laplace is relatively easy to maintain and port to different architectures and kernels.