2018-01-24 02:44:17

by 禹舟键

[permalink] [raw]
Subject: perf stat: Add support to print counts for fixed times

From: yuzhoujian <[email protected]>

Hi Jirka
And how can you control the output for perf stat, if I don't want to use the
"sleep" workload, like some user programs. I want to check the "cycles"
for this program when it just begin to run.

root@node10:/home$ gcc -g -o malloc malloc.c
root@node10:/home$ ./perf stat -e cycles -I 1000 --times-print 3 ./malloc &
[1] 32586
# time counts unit events
1.000094153 2,914,162,979 cycles
2.000323667 3,062,832,799 cycles
3.000443807 3,063,146,609 cycles

Best wishes


2018-01-24 07:49:28

by Jiri Olsa

[permalink] [raw]
Subject: Re: perf stat: Add support to print counts for fixed times

On Wed, Jan 24, 2018 at 03:43:19AM +0100, ufo19890607 wrote:
> From: yuzhoujian <[email protected]>
>
> Hi Jirka
> And how can you control the output for perf stat, if I don't want to use the
> "sleep" workload, like some user programs. I want to check the "cycles"
> for this program when it just begin to run.
>
> root@node10:/home$ gcc -g -o malloc malloc.c
> root@node10:/home$ ./perf stat -e cycles -I 1000 --times-print 3 ./malloc &
> [1] 32586
> # time counts unit events
> 1.000094153 2,914,162,979 cycles
> 2.000323667 3,062,832,799 cycles
> 3.000443807 3,063,146,609 cycles

yea, we can't do that now.. we have the exat oposit option in record,
because sometimes you want to skip the initialization phase of the
workload.. any special reason why you want to see just the begining?

we can add this, but maybe change the option name a bit

your code now allows this even if it's not in interval mode

[jolsa@krava perf]$ sudo ./perf stat -e cycles -a --times-print 3

Performance counter stats for 'system wide':

1,469,288,467 cycles

3.000502814 seconds time elapsed


I think we should either keep it interval specific:

perf stat -e cycles -I 1000 --interval-count=3

or make the option general and time based:

perf stat -e cycles --time=3000


or maybe both ;-)

thanks,
jirka