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
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs



Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>
	</a>

<hr>		    
			</div>
		    		</div>

		<div class=