dada03db9b
Daniel Wagner reported to me that readproc.h got deprecated. Also,
while the procps-ng library was available on Fedora, it was not available
on RHEL, which is a piece of evidence that it was not that used.
rtla uses procps-ng only to find the PID of the tracers' workload.
I used the procps-ng library to avoid reinventing the wheel. But in this
case, reinventing the wheel took me less time than the time we already
took trying to work around problems.
Implement a function that reads /proc/ entries, checking if:
- the entry is a directory
- the directory name is composed only of digits (PID)
- the directory contains the comm file
- the comm file contains a comm that matches the tracers'
workload prefix.
- then return true; otherwise, return false.
And use it instead of procps-ng.
Link: https://lkml.kernel.org/r/e8276e122ee9eb2c5a0ba8e673fb6488b924b825.1652423574.git.bristot@kernel.org
Cc: John Kacur <jkacur@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tao Zhou <tao.zhou@linux.dev>
Fixes: b1696371d8
("rtla: Helper functions for rtla")
Reported-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
34 lines
924 B
Plaintext
34 lines
924 B
Plaintext
RTLA: Real-Time Linux Analysis tools
|
|
|
|
The rtla meta-tool includes a set of commands that aims to analyze
|
|
the real-time properties of Linux. Instead of testing Linux as a black box,
|
|
rtla leverages kernel tracing capabilities to provide precise information
|
|
about the properties and root causes of unexpected results.
|
|
|
|
Installing RTLA
|
|
|
|
RTLA depends on the following libraries and tools:
|
|
|
|
- libtracefs
|
|
- libtraceevent
|
|
|
|
It also depends on python3-docutils to compile man pages.
|
|
|
|
For development, we suggest the following steps for compiling rtla:
|
|
|
|
$ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git
|
|
$ cd libtraceevent/
|
|
$ make
|
|
$ sudo make install
|
|
$ cd ..
|
|
$ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git
|
|
$ cd libtracefs/
|
|
$ make
|
|
$ sudo make install
|
|
$ cd ..
|
|
$ cd $rtla_src
|
|
$ make
|
|
$ sudo make install
|
|
|
|
For further information, please refer to the rtla man page.
|