Use setjmp/longjump to get the parent process back out of processing
loop and into forced kill mode for the child processes/threads.
Added function reset_worker_signals() so that workers (sender and
receiver) don't try to reap as well.
Signed-off-by: Clark Williams <williams@redhat.com>
When we try to run ftrace with cyclictest command of rt-test,
We view the error according to different kernel version.
We need to modify this hard coded interface.
* Directory name of each kernel version
2.6.24.7-rt23 /sys/kernel/debug/tracing/latency_hist/wakeup_latency/reset
2.6.31-rc9-rt9.1 /sys/kernel/debug/tracing/latency_hist/wakeup/reset
2.6.33.7.2-rt30 /sys/kernel/debug/tracing/latency_hist/wakeup/reset
* parsing verification: ./linux-2.6/scripts/checkpatch.pl --> OK
Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Reviewed-by: John Kacur <jkacur@redhat.com>
Reviewed-by: Carsten Emde <C.Emde@osadl.org>
Signed-off-by: Clark Williams <williams@redhat.com>
To compare histograms of several SMP machines or to gain an
overview when cyclictest is running more than a single thread,
an overall histogram is required that contains a summary of
the individual thread latencies.
This patch adds this functionality and introduces the new
option -H/--histofall for this purpose.
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Signed-off-by: Clark Williams <williams@redhat.com>
Change type of faux sched_setaffinity to match headers.
Also add additional report info when dumping histogram.
Signed-off-by: Clark Williams <williams@redhat.com>
- don't rely on non-standard envvar PWD, use make's CURDIR instead
- allow overwriting KERNELDIR
- less repetition by conflating targets
- explicitly differentiate between kbuild and ordinary make part
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cleanup spurred by need to make the 'diff' variable in timerthread() to
be unsigned and 64-bits (rather than a signed 32-bit).
Signed-off-by: Clark Williams <williams@redhat.com>
Documented the --numa mode option to cyclictest in the man page.
Also updated the command summary to include the short options for
the --smp and --numa modes (-S and -U).
Signed-off-by: Clark Williams <williams@redhat.com>
When using a POSIX interval timer and an overrun occurs, a signal is always
lost. From then on cyclictest would report all measurements as increased by
N*period (where N is the number of overruns).
cyclictest can detect the overruns and adjust the expected time of the next
tick accordingly.
Reported-by: Marti Raudsepp <marti@juffo.org>
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: Clark Williams <williams@redhat.com>
If python is not available on the target, skip the
hwlatdetect.py installation with:
make PYLIB= DESTDIR=/some/dir install
Create PYLIB during make install with DESTDIR set
Also, the second bindir should probably be srcdir.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Clark Williams <williams@redhat.com>
After much thought, I decided to keep cyclictest's default scheduling
policy as SCHED_OTHER. My rationale is that if you don't specify a
priority on the command line you get the priorityless policy. If you
do specify a priority but no specific RT policy, we'll default to
SCHED_FIFO. So to get SCHED_RR you have to specify priorty and policy
name, for example:
# cyclictest --priority=90 --policy=rr
Yes, I realize that the vast majority of users will run it with a
realtime priority, but I just don't like picking a priority if it
wasn't specified. If you want a realtime policy, specify a priority.
Signed-off-by: Clark Williams <williams@redhat.com>
The call numa_node_to_cpus() in rt_numa_numa_node_of_cpu()
was failing because the cpumask buffer size was only 16 bytes
and it seems to require 32. Change the declaration to be 256
just for paranoia's sake.
Signed-off-by: Clark Williams <williams@redhat.com>
Since it's doing relative time sleeps probably not an issue, but
move to clock_nanosleep(CLOCK_MONOTONIC, 0,...) to be clear.
Signed-off-by: Clark Williams <williams@redhat.com>
This patch adds the program pmqtest to the rt-tests suite.
The test mechanism is the same as in ptsematest, svsematest
and friends, but it uses message queues to synchronize the
test threads. To test the - now hopefully fixed - kernel
problem that occurred when a timeout was specified, the
-T option is available.
On an 8-way machine, the test result may look like:
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Signed-off-by: Clark Williams <williams@redhat.com>
Somewhere between 2.6.24 and 2.6.33, the tracing_on field was
added to the debugfs tracing dir. If it exists use it to turn
tracing on and off; if not use tracing_enabled.
Signed-off-by: Clark Williams <williams@redhat.com>
Change enable/disable file to be tracing/tracing_on; enable the
options/latency-trace format for function tracing; add tracetype
CUSTOM for use with the -T/--tracer option.
Signed-off-by: Clark Williams <williams@redhat.com>
Add SMP testing option (-S, --smp) to svsematest, same as in
cyclictest.
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Acked-by: John Kacur <jkacur@redhat.com>
Add SMP testing option (-S, --smp) to ptsematest, same as in
cyclictest.
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Acked-by: John Kacur <jkacur@redhat.com>
The help message of cyclictest's -S option says that it equals -a -t -n -m -d0.
In reality, it only equals -a -t -n.
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Acked-by: John Kacur <jkacur@redhat.com>
If the policy is forced to SCHED_OTHER, since the priority no longer
fits into the SCHED_FIFO or SCHED_RR range, the policy display of
cyclictest is somewhat incorrect.
Display all policies.
Also make the variable policystr static; the condition
"if (!policystr)" is useless, otherwise.
In addition, place the priority logic before decrementing the priority;
a priority of 1 is incorrectly made SCHED_OTHER, otherwise.
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Acked-by: John Kacur <jkacur@redhat.com>
- Use symbolic names for scheduling policies, that is, don't assume
SCHED_RR is 2, use SCHED_RR instead, and so on.
- Fix the logic in handlepolicy(char *polname)
- remove the test with the unreachable line,
- make the default SCHED_FIFO if we don't recognize the
requested policy.
Signed-off-by: John Kacur <jkacur@redhat.com>
This reverts commit 582be2a52c.
Unfortunately this commit introduces a bug because the priority is not
retested, and this can result in reported priorities below 0.
For example,
sudo ./cyclictest -t3 -p1
policy: fifo: loadavg: 0.09 0.06 0.05 1/331 21732
T: 0 (21730) P: 1 I:1000 C: 593 Min: 34 Act: 155 Avg: 100 Max: 672
T: 1 (21731) P: 0 I:1500 C: 395 Min: 15 Act: 43 Avg: 72 Max: 853
T: 2 (21732) P:-1 I:2000 C: 297 Min: 21 Act: 57 Avg: 79 Max: 330
Notice that the last priority is reported as -1.
After reverting this commit, we get the correct expected behaviour.
sudo ./cyclictest -t3 -p1
policy: fifo: loadavg: 0.07 0.05 0.04 2/330 21754
T: 0 (21752) P: 1 I:1000 C: 11600 Min: 13 Act: 7072 Avg: 3593 Max: 7841
T: 1 (21753) P: 0 I:1500 C: 7737 Min: 12 Act: 1572 Avg: 516 Max: 2381
T: 2 (21754) P: 0 I:2000 C: 5804 Min: 12 Act: 53 Avg: 59 Max: 548
I think it can be argued that the original code is also clearer, although
that is somewhat subjective. With the original code I don't need to track
down exactly what "sameprio" means, and it is clear what is being tested.
Signed-off-by: John Kacur <jkacur@redhat.com>
The command name is already taken by a perl script working with CPAN
and a Python package installer.
While at it remove trailing whitespace from three lines in
src/pi_tests/pip_stress.c.
Closes: http://bugs.debian.org/572104
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: John Kacur <jkacur@redhat.com>
These temporary files were a real problem when creating the Debian
package for rt-tests. debhelper (a generic suite of scripts to ease
packaging) did something like:
perl -c 'close(STDERR); exec("make distclean");'
which leaked the *.d.$$ files and then wailed that the package contained
untracked changes to the vanilla source. See
http://bugs.debian.org/570443 for some more details.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: John Kacur <jkacur@redhat.com>
These temporary files were a real problem when creating the Debian
package for rt-tests. debhelper (a generic suite of scripts to ease
packaging) did something like:
perl -c 'close(STDERR); exec("make distclean");'
which leaked the *.d.$$ files and then wailed that the package contained
untracked changes to the vanilla source. See
http://bugs.debian.org/570443 for some more details.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>