Re: [PATCH] cyclictest: only print non-zero values in histogram output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 9/26/18 12:53 PM, John Kacur wrote:
> 
> 
> On Thu, 13 Sep 2018, Ralf Ramsauer wrote:
> 
>> If the histogram output is enabled, cyclictest dumps lines of all latencies,
>> even if the specific latency was never hit. For analysing a histogram, it is
>> sufficient to only dump latencies that actually occured. This patch skips
>> latencies that were never hit with respect to all threads.
>>
>> If cyclictest is used in combination with --nsecs, this removes a lot of
>> output noise.
>>
>> It shrinks output to:
>>   $ cyclictest --threads 2 --affinity 2-3 --priority 99 --histofall 100 --loops 100000
>>   # /dev/cpu_dma_latency set to 0us
>>   policy: fifo: loadavg: 0.03 0.13 0.07 1/560 1248
>>
>>   T: 0 ( 1228) P:99 I:1000 C: 100000 Min:      2 Act:    2 Avg:    2 Max:  4
>>   T: 1 ( 1229) P:99 I:1000 C: 100000 Min:      2 Act:    2 Avg:    2 Max:  4
>>   # Histogram
>>   000002 069425   067138  136563
>>   000003 030536   032850  063386
>>   000004 000039   000012  000051
>>   # Total: 000100000 000100000 000200000
>>   # Min Latencies: 00002 00002
>>   # Avg Latencies: 00002 00002
>>   # Max Latencies: 00004 00004 00004
>>   # Histogram Overflows: 00000 00000 00000
>>   # Histogram Overflow at cycle number:
>>   # Thread 0:
>>   # Thread 1:
>>
>> Signed-off-by: Ralf Ramsauer <ralf.ramsauer@xxxxxxxxxxxxxxxxx>
>> ---
>>  src/cyclictest/cyclictest.c | 13 ++++++++++---
>>  1 file changed, 10 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
>> index 8d9ec80..0e8459c 100644
>> --- a/src/cyclictest/cyclictest.c
>> +++ b/src/cyclictest/cyclictest.c
>> @@ -1988,16 +1988,23 @@ static void print_hist(struct thread_param *par[], int nthreads)
>>  	fprintf(fd, "# Histogram\n");
>>  	for (i = 0; i < histogram; i++) {
>>  		unsigned long long int allthreads = 0;
>> +		unsigned long curr_latency = 0;
>> +
>> +		for (j = 0; j < nthreads ; j++) {
>> +			curr_latency = par[j]->stats->hist_array[i];
>> +			allthreads += curr_latency;
>> +			log_entries[j] += curr_latency;
>> +		}
>> +		if (!allthreads)
>> +			continue;
>>  
>>  		fprintf(fd, "%06d ", i);
>>  
>>  		for (j = 0; j < nthreads; j++) {
>> -			unsigned long curr_latency=par[j]->stats->hist_array[i];
>> +			curr_latency = par[j]->stats->hist_array[i];
>>  			fprintf(fd, "%06lu", curr_latency);
>>  			if (j < nthreads - 1)
>>  				fprintf(fd, "\t");
>> -			log_entries[j] += curr_latency;
>> -			allthreads += curr_latency;
>>  		}
>>  		if (histofall && nthreads > 1) {
>>  			fprintf(fd, "\t%06llu", allthreads);
>> -- 
>> 2.19.0
>>
>>
> 
> Note, although I initially accepted this patch I may have to revert it.
> The output of the histogram is not consumed just by humans but by 
> software, namely rteval

Narf, didn't know.

> 
> I am leaving the patch in for now and considering whether rteval could be 
> modified, but this is a heads-up.
> 
> The other option, is for this patch to be an option

Give me a couple of days and let me have a look at rteval, zero-lines
are really useless. Maybe there's a way for rteval to support any output
format of cyclictest.

  Ralf

> 
> Thanks
> 
> John
> 



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux