PDF     Presentation     Video     Code

Abstract

We introduce TEE-PERF, an architecture-and platform-independent performance measurement tool for trusted execution environments (TEEs). More specifically, TEE-PERF supports method-level profiling for unmodified multithreaded applications, without relying on any architecture-specific hardware features (e.g. Intel VTune Amplifier), or without requiring platform-dependent kernel features (e.g. Linux perf). Moreover, TEE-PERF provides accurate profiling measurements since it traces the entire process execution without employing instruction pointer sampling. Thus, TEE-PERF does not suffer from sampling frequency bias, which can occur with threads scheduled to align to the sampling frequency. We have implemented TEE-P ERF with an easy to use interface, and integrated it with Flame Graphs to visualize the performance bottlenecks. We have evaluated TEE-PERF based on the Phoenix multithreaded benchmark suite and real-world applications (RocksDB, SPDK, etc.), and compared it with Linux perf. Our experimental evaluation shows that TEE-PERF incurs low profiling overheads, while providing accurate profile measurements to identify and optimize the application bottlenecks in the context of TEEs. TEE-PERF is publicly available.

Citation

@inproceedings{ tee-perf,
  author={Bailleu, Maurice and Dragoti, Donald and Bhatotia, Pramod and Fetzer, Christof},
  booktitle={2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)}, 
  title={TEE-Perf: A Profiler for Trusted Execution Environments}, 
  year={2019},
  volume={},
  number={},
  pages={414-421},
  keywords={Computer architecture;Tools;Instruction sets;Visualization;Measurement;Hardware;TEE;profiler;SGX;tool},
  doi={10.1109/DSN.2019.00050}
}