A ptrace-based tracing mechanism for syscalls

Hidden Treasures

Future Work

The stracer currently supports only x86-64, although we've already experimented with aarch64 support. However, ptrace delivers the wrong syscall numbers during tracing. Because x86-64 is more widely used, we decided to focus on implementing the stracer first for x86-64 and add aarch64 support at a later point.

The biggest issue so far, however, has been the availability of lock-free data structures for C. The lack thereof has been a limiting factor for many of our development endeavors. The syscall event interface is just one of many examples for this issue. A next step might be the implementation of a lock-free multiconsumer ring buffer.

Infos

  1. gprof: https://sourceware.org/binutils/docs/gprof
  2. gperftools: https://github.com/gperftools/gperftools
  3. McKee, Sally A., and Robert W. Wisniewski. "Memory wall." In: D. Padua, ed. Encyclopedia of Parallel Computing . Springer, Boston, MA. 2011. doi:10.1007/978-0-387-09766-4_234
  4. libiotrace: https://github.com/hpcraink/fsprj2
  5. POSIX: https://pubs.opengroup.org/onlinepubs/9699919799
  6. MPI: https://www.mpi-forum.org
  7. Darshan: https://www.mcs.anl.gov/research/projects/darshan/
  8. Linux 4.7 x86-64 syscalls table: https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64
  9. ministrace: https://github.com/nelhage/ministrace
  10. rmind, ringbuf: https://github.com/rmind/ringbuf

The Author

Gerrit Klein is working on his Masters in Applied Computer Science, Philipp Koester is pursuing his PhD, and Rainer Keller is a Professor of Computer Science, with a focus on high-performance computing.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus