« Previous 1 2 3 4 5
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
- gprof: https://sourceware.org/binutils/docs/gprof
- gperftools: https://github.com/gperftools/gperftools
- 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
- libiotrace: https://github.com/hpcraink/fsprj2
- POSIX: https://pubs.opengroup.org/onlinepubs/9699919799
- MPI: https://www.mpi-forum.org
- Darshan: https://www.mcs.anl.gov/research/projects/darshan/
- Linux 4.7 x86-64 syscalls table: https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64
- ministrace: https://github.com/nelhage/ministrace
- rmind, ringbuf: https://github.com/rmind/ringbuf
« Previous 1 2 3 4 5
Buy this article as PDF
(incl. VAT)