* [PATCH] rt-tests: incorrect first latency value for --verbose option
@ 2012-05-03 0:02 Frank Rowand
2012-05-07 21:41 ` John Kacur
0 siblings, 1 reply; 5+ messages in thread
From: Frank Rowand @ 2012-05-03 0:02 UTC (permalink / raw)
To: linux-rt-users@vger.kernel.org, williams, jkacur
When the --verbose option is selected, the first value for each thread is
incorrectly reported as zero.
This is because when collecting the first value, the index into stat->values is
incremented from zero to one before storing the value. But when printing the
values, the first value printed is stat->values[0], which has been initialized
to zero.
Signed-off-by: Frank Rowand <frank.rowand@am.sony.com>
---
src/cyclictest/cyclictest.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)
Index: b/src/cyclictest/cyclictest.c
===================================================================
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -756,7 +756,6 @@ void *timerthread(void *param)
pthread_mutex_unlock(&break_thread_id_lock);
}
stat->act = diff;
- stat->cycles++;
if (par->bufmsk)
stat->values[stat->cycles & par->bufmsk] = diff;
@@ -769,6 +768,8 @@ void *timerthread(void *param)
stat->hist_array[diff]++;
}
+ stat->cycles++;
+
next.tv_sec += interval.tv_sec;
next.tv_nsec += interval.tv_nsec;
if (par->mode == MODE_CYCLIC) {
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] rt-tests: incorrect first latency value for --verbose option 2012-05-03 0:02 [PATCH] rt-tests: incorrect first latency value for --verbose option Frank Rowand @ 2012-05-07 21:41 ` John Kacur 2012-05-07 21:45 ` Frank Rowand 0 siblings, 1 reply; 5+ messages in thread From: John Kacur @ 2012-05-07 21:41 UTC (permalink / raw) To: Frank Rowand; +Cc: linux-rt-users@vger.kernel.org, williams, jkacur On Wed, 2 May 2012, Frank Rowand wrote: > > When the --verbose option is selected, the first value for each thread is > incorrectly reported as zero. > > This is because when collecting the first value, the index into stat->values is > incremented from zero to one before storing the value. But when printing the > values, the first value printed is stat->values[0], which has been initialized > to zero. Hi Frank Ok, no more posting from me after winning a bottle of whiskey at the Irish Pub on quiz night. :) I've been looking at this one, and I'm not sure about it. According to the help output, "-v --verbose output values on stdout for statistics format: n:c:v n=tasknum c=count v=value in us" ./cyclictest --verbose -p99 -t | awk '$2~/^0/{ print }' 0: 0: 0 1: 0: 0 2: 0: 0 3: 0: 0 4: 0: 0 5: 0: 0 6: 0: 0 7: 0: 0 So, it looks like the values are 0 at count 0, doesn't that make sense? Thanks John Kacur ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] rt-tests: incorrect first latency value for --verbose option 2012-05-07 21:41 ` John Kacur @ 2012-05-07 21:45 ` Frank Rowand 2012-05-07 22:03 ` John Kacur 0 siblings, 1 reply; 5+ messages in thread From: Frank Rowand @ 2012-05-07 21:45 UTC (permalink / raw) To: John Kacur Cc: Rowand, Frank, linux-rt-users@vger.kernel.org, williams@redhat.com On 05/07/12 14:41, John Kacur wrote: > > > On Wed, 2 May 2012, Frank Rowand wrote: > >> >> When the --verbose option is selected, the first value for each thread is >> incorrectly reported as zero. >> >> This is because when collecting the first value, the index into stat->values is >> incremented from zero to one before storing the value. But when printing the >> values, the first value printed is stat->values[0], which has been initialized >> to zero. > > Hi Frank > > Ok, no more posting from me after winning a bottle of whiskey at the Irish > Pub on quiz night. :) Or if you do, you should share a bit of the whiskey with me. > > I've been looking at this one, and I'm not sure about it. > According to the help output, > > "-v --verbose output values on stdout for statistics > format: n:c:v n=tasknum c=count v=value in us" > > ./cyclictest --verbose -p99 -t | awk '$2~/^0/{ print }' > > 0: 0: 0 > 1: 0: 0 > 2: 0: 0 > 3: 0: 0 > 4: 0: 0 > 5: 0: 0 > 6: 0: 0 > 7: 0: 0 > > So, it looks like the values are 0 at count 0, doesn't that make sense? Nope. The event for count == 0 is the first event. And the first event has an actual latency that is not zero on the system I tested it on. -Frank ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] rt-tests: incorrect first latency value for --verbose option 2012-05-07 21:45 ` Frank Rowand @ 2012-05-07 22:03 ` John Kacur 2012-05-07 22:13 ` Frank Rowand 0 siblings, 1 reply; 5+ messages in thread From: John Kacur @ 2012-05-07 22:03 UTC (permalink / raw) To: Frank Rowand, Thomas Gleixner Cc: John Kacur, Rowand, Frank, linux-rt-users@vger.kernel.org, williams@redhat.com On Mon, 7 May 2012, Frank Rowand wrote: > On 05/07/12 14:41, John Kacur wrote: > > > > > > On Wed, 2 May 2012, Frank Rowand wrote: > > > >> > >> When the --verbose option is selected, the first value for each thread is > >> incorrectly reported as zero. > >> > >> This is because when collecting the first value, the index into stat->values is > >> incremented from zero to one before storing the value. But when printing the > >> values, the first value printed is stat->values[0], which has been initialized > >> to zero. > > > > Hi Frank > > > > Ok, no more posting from me after winning a bottle of whiskey at the Irish > > Pub on quiz night. :) > > Or if you do, you should share a bit of the whiskey with me. You get the bottle and 30 shot glasses and share it with everyone at the pub, so if you want some you have to come, and then help my team win too :) > > > > > I've been looking at this one, and I'm not sure about it. > > According to the help output, > > > > "-v --verbose output values on stdout for statistics > > format: n:c:v n=tasknum c=count v=value in us" > > > > ./cyclictest --verbose -p99 -t | awk '$2~/^0/{ print }' > > > > 0: 0: 0 > > 1: 0: 0 > > 2: 0: 0 > > 3: 0: 0 > > 4: 0: 0 > > 5: 0: 0 > > 6: 0: 0 > > 7: 0: 0 > > > > So, it looks like the values are 0 at count 0, doesn't that make sense? > > Nope. The event for count == 0 is the first event. And the first event > has an actual latency that is not zero on the system I tested it on. > Hmmm, this may be a quibble about definitions. I know that in the c-world we're used to start counting at 0, but to me, count == 0 is before the first event. You're not losing any data here, it's just that the first event is stored in the first count. Or am I still missing something here? It looks like it was very deliberately programmed this way, unless Thomas tells us otherwise. Thanks John ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] rt-tests: incorrect first latency value for --verbose option 2012-05-07 22:03 ` John Kacur @ 2012-05-07 22:13 ` Frank Rowand 0 siblings, 0 replies; 5+ messages in thread From: Frank Rowand @ 2012-05-07 22:13 UTC (permalink / raw) To: John Kacur Cc: Rowand, Frank, Thomas Gleixner, linux-rt-users@vger.kernel.org, williams@redhat.com On 05/07/12 15:03, John Kacur wrote: > > > On Mon, 7 May 2012, Frank Rowand wrote: > >> On 05/07/12 14:41, John Kacur wrote: >>> >>> >>> On Wed, 2 May 2012, Frank Rowand wrote: >>> >>>> >>>> When the --verbose option is selected, the first value for each thread is >>>> incorrectly reported as zero. >>>> >>>> This is because when collecting the first value, the index into stat->values is >>>> incremented from zero to one before storing the value. But when printing the >>>> values, the first value printed is stat->values[0], which has been initialized >>>> to zero. >>> >>> Hi Frank >>> >>> Ok, no more posting from me after winning a bottle of whiskey at the Irish >>> Pub on quiz night. :) >> >> Or if you do, you should share a bit of the whiskey with me. > > You get the bottle and 30 shot glasses and share it with everyone at the > pub, so if you want some you have to come, and then help my team win too > :) Hmmm, that's a long way to go for a shot. > > > >>> >>> I've been looking at this one, and I'm not sure about it. >>> According to the help output, >>> >>> "-v --verbose output values on stdout for statistics >>> format: n:c:v n=tasknum c=count v=value in us" >>> >>> ./cyclictest --verbose -p99 -t | awk '$2~/^0/{ print }' >>> >>> 0: 0: 0 >>> 1: 0: 0 >>> 2: 0: 0 >>> 3: 0: 0 >>> 4: 0: 0 >>> 5: 0: 0 >>> 6: 0: 0 >>> 7: 0: 0 >>> >>> So, it looks like the values are 0 at count 0, doesn't that make sense? >> >> Nope. The event for count == 0 is the first event. And the first event >> has an actual latency that is not zero on the system I tested it on. >> > > Hmmm, this may be a quibble about definitions. I know that in the c-world > we're used to start counting at 0, but to me, count == 0 is before the > first event. You're not losing any data here, it's just that the first > event is stored in the first count. Or am I still missing something here? In that case, there is no value in reporting event zero for each thread, because it will always be: 0: 0: 0 Another thing that points to reporting latency == 0 is not intended is that the summary does not report a 'Min' of zero, even when the trace shows the first event having a latency of zero: # cyclictest -q --verbose -p99 -t -l 3 Thread 0 Interval: 1500 Thread 1 Interval: 2000 0: 0: 0 0: 1: 190 0: 2: 166 1: 0: 0 1: 1: 178 1: 2: 173 T: 0 ( 633) P:99 I:1000 C: 3 Min: 166 Act: 173 Avg: 176 Max: 190 T: 1 ( 634) P:98 I:1500 C: 3 Min: 138 Act: 138 Avg: 163 Max: 178 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-05-07 22:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-05-03 0:02 [PATCH] rt-tests: incorrect first latency value for --verbose option Frank Rowand 2012-05-07 21:41 ` John Kacur 2012-05-07 21:45 ` Frank Rowand 2012-05-07 22:03 ` John Kacur 2012-05-07 22:13 ` Frank Rowand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).