moved policy display from individual threads to header with load average
did some sanity checking so that policy and priority match
Signed-off-by: Clark Williams <williams@redhat.com>
"cyclictest --help".
From: GeunSik Lim <leemgs1@gmail.com>
Reply-To: leemgs1@gmail.com
To: williams <williams@redhat.com>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>, tglx <tglx@linutronix.de>
When we use "#> cyclictest --help" command, we are confusing because of
random order of many options. Arrange alphabetically.
After Patch)
[root@fedora11 rt-tests]# ./cyclictest --help
cyclictest V 0.46
Usage:
cyclictest <options>
-a [NUM] --affinity run thread #N on processor #N, if possible
with NUM pin all threads to the processor NUM
-b USEC --breaktrace=USEC send break trace command when latency > USEC
-B --preemptirqs both preempt and irqsoff tracing (used with -b)
-c CLOCK --clock=CLOCK select clock
0 = CLOCK_MONOTONIC (default)
1 = CLOCK_REALTIME
-C --context context switch tracing (used with -b)
-d DIST --distance=DIST distance of thread intervals in us default=500
-D --duration=t specify a length for the test run
default is in seconds, but 'm', 'h', or 'd' maybe added
to modify value to minutes, hours or days
-E --event event tracing (used with -b)
-f --ftrace function trace (when -b is active)
-h --histogram=US dump a latency histogram to stdout after the run
(with same priority about many threads)
US is the max time to be be tracked in microseconds
-i INTV --interval=INTV base interval of thread in us default=1000
-I --irqsoff Irqsoff tracing (used with -b)
-l LOOPS --loops=LOOPS number of loops: default=0(endless)
-m --mlockall lock current and future memory allocations
-n --nanosleep use clock_nanosleep
-N --nsecs print results in ns instead of ms (default ms)
-o RED --oscope=RED oscilloscope mode, reduce verbose output by RED
-O TOPT --traceopt=TOPT trace option
-p PRIO --prio=PRIO priority of highest prio thread
-P --preemptoff Preempt off tracing (used with -b)
-q --quiet print only a summary on exit
-r --relative use relative timer instead of absolute
-s --system use sys_nanosleep and sys_setitimer
-t --threads one thread per available processor
-t [NUM] --threads=NUM number of threads:
without NUM, threads = max_cpus
without -t default = 1
-T TRACE --tracer=TRACER set tracing function
configured tracers: unavailable (debugfs not mounted)
-v --verbose output values on stdout for statistics
format: n:c:v n=tasknum c=count v=value in us
-w --wakeup task wakeup tracing (used with -b)
-W --wakeuprt rt task wakeup tracing (used with -b)
-y POLI --policy=POLI policy of realtime thread (1:FIFO, 2:RR)
format: --policy=1(default) or --policy=2
Signed-by-off: GeunSik Lim <geunsik.lim@samsung.com>
Signed-off-by: Clark Williams <williams@redhat.com>
users
From: GeunSik Lim <leemgs1@gmail.com>
To: williams <williams@redhat.com>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>, tglx <tglx@linutronix.de>
Current cyclictest support FIFO policy for static priority of
RT threads only. Append policy option to support FIFO or RR by user.
After this patch.
1) with FIFO about RT threads(default)
./cyclictest -t 5 -p 50
or ./cyclictest -t 5 -p 50 -y 1
or ./cyclictest -t 5 -p 50 --policy 1
2) with RR about RT threads(default)
./cyclictest -t 5 -p 50 -y 2
or ./cyclictest -t 5 -p 50 --policy 2
This is screenshot of threads using cyclictest & tuna utility after patch.
http://blogfiles6.naver.net/20090703_5/invain_1246588185266_sc7zEq_PNG/cyclictest-tuna-policy.PNG
Signed-off-by: GeunSik Lim <geunsik.lim@samsung.com>
Signed-off-by: Clark Williams <williams@redhat.com>
of many threads with -h
From: GeunSik Lim <leemgs1@gmail.com>
Reply-To: leemgs1@gmail.com
To: williams <williams@redhat.com>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>, tglx <tglx@linutronix.de>,
sdietrich@suse.de
If we run a many threads with -t option, "priority--" rt priority will assign
per thread in sequence. But, If we use -h option, all threads is same priority.
Append man page and cyclictest usage about the same priority of many threads
with -h option.
ex) cyclictest -t 5 -p 50 [enter] <-- without -h
ex) cyclictest -t 5 -p 50 -h 100 [enter] <-- with -h
Signed-off-by: GeunSik Lim <geunsik.lim@samsung.com>
Acked-by : Sven-Thorsten Dietrich <sdietrich@suse.de>
Signed-off-by: Clark Williams <williams@redhat.com>
Don't miss latency which exceed the histogram limit -
instead sample limit exceeding latency in the last bucket.
This is a leftover from cyclictest_histogram.patch:
-> Todo: Currently cyclictest does not report the number of samples
-> that exceeded the histogram max latency.
Handle OOM.
Signed-off-by: Daniel Gollub <dgollub@suse.de>
Reviewed-by: Sven-Thorsten Dietrich <sdietrich@suse.de>
--
This is useful when testing PREEMPT_NONE Kernels with cyclictest,
where latencies approaching 1 second can be observed.
Signed-off-by: Sven-Thorsten Dietrich <sdietrich@suse.de>
If clock_nanosleep() gets interrupted this could result in a negative
time diff from calcdiff().
With the histogram patch this leads to a segfault, since the time diff
is used as index for the histogram array:
Core was generated by `/usr/bin/cyclictest -n -q -p 99 -t 2 -i 500 -l
1000000 -h
20000'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000402324 in timerthread (param=<value optimized out>)
at src/cyclictest/cyclictest.c:339
339 stat->hist_array[diff] += 1;
(gdb) p diff
$1 = -751974
Signed-off-by: Daniel Gollub <dgollub@suse.de>
Acked-by: Sven-Thorsten Dietrich <sdietrich@suse.de>
You might wonder if this wasn't already fixed. Yes it was (in
f16ec27fb3), but the change was undone by 3e04327f7f.
While at it add an .br which makes the paragraph look a bit nicer.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This was noticed by GeunSik Lim.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: GeunSik Lim <leemgs1@gmail.com>
Cc: Luis Claudio R. Goncalves <lclaudio@uudg.org>
Cc: Clark Williams <williams@redhat.com>
Hello,
My first fix didn't took into account that long is 4 byte long on ARM. Therefor
I changed it to long long now, which works on my ARM board...
Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Clark Williams <williams@redhat.com>
'-' chars are interpreted as hyphens by groff, not as minus signs. This
means that if you're using an UTF-8 locale searching for '-' to find
options doesn't work.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Hi Thomas,
The patch below removes the duplicate entry for the -m/--mlockall option from
the cyclictest manpage. Patch is againnst current HEAD of rt-tests.git
Cheers, Tobias
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
This is patch to support wakeup & wakeup_rt tracing at the argument of
cyclictest additionally. Current cyclictest support three tracing
like PREEMPTOFF, IRQSOFF, PREEMPTIRQSOFF just.
This additional function will help wakeup related tracing
about sleep api [ex: nanosleep() , usleep] of cyclictest.
Practically speaking, wakeup(+wakeup-rt) tracing by steven rostedt is useful
in the linux based embedded product development.
After patching,
Fedora9#> cat /debug/tracing/available_tracers
syscall blk kmemtrace power branch function_graph mmiotrace wakeup_rt wakeup \
preemptirqsoff preemptoff irqsoff function sched_switch initcall nop
Fedora9#> cyclictest -t 5 -p 80 -b 1000 -w -D 10 [enter] <--- tracing wakeup
Fedora9#> cat /debug/tracing/trace
Fedora9#> cyclictest -t 5 -p 80 -b 1000 -W -D 10 [enter] <--- tracing wakeup-rt
Fedora9#> cat /debug/tracing/trace
Signed-off-by: GeunSik Lim <geunsik.lim@samsung.com>
Signed-off-by: Clark Williams <williams@redhat.com>