Re: [PATCH 4/4] perf script: Add script to collect and display IBSsamples

From: Robert Richter
Date: Fri Dec 23 2011 - 06:20:24 EST


On 23.12.11 11:33:29, Ingo Molnar wrote:
>
> * Robert Richter <robert.richter@xxxxxxx> wrote:
>
> > This patch adds a script to collect and display IBS samples.
> > There are the following options:
> >
> > perf script ibs [ibs_op|ibs_fetch] [-c period] <command>
> >
> > Examples for usage:
> >
> > perf script ibs ibs_op <command>
> > perf script ibs ibs_fetch <command>
> > perf script record ibs ibs_op -c 500000 <command>
> > perf script report ibs
> > perf script record ibs ibs_op -c 500000 <command> | perf script report ibs
>
> So, cannot we just integrate this into regular perf record and
> perf report?

As stated in the cover letter, perf record is already there:

perf record -e ibs_op:r0 -c 100000 -R -a <command>
perf record -e ibs_fetch:r0 -c 100000 -R -a <command>

For perf report I was looking at parsing perf.data to output a dump
for ibs samples, but it turned out to be more useful to implement this
with perf script.

What we might do later to integrate ibs more into HW event sampling is
to redirect perfctr event requests for clk_unhalted/ops_count in
conjunction with the precise bit to ibs_op (clk_unhalted/ops). We
would then have e.g. a precise perf top. But this is clearly out of
the scope of this patch series.

>
> Also, could you quote example output of "perf script report ibs"?

IBS_FETCH sample on cpu6 IBS0: 0x00170003186a186a IBS1: 0x0000000000444780 IBS2:0x000000041af26780
IBS_FETCH sample on cpu6 IBS0: 0x00170003186a186a IBS1: 0x00007f5efb44e3b2 IBS2:0x000000042fcff3b2
IBS_FETCH sample on cpu6 IBS0: 0x01370003186a186a IBS1: 0xffffffff81065273 IBS2:0x0000000001065273
IBS_FETCH sample on cpu6 IBS0: 0x01370003186a186a IBS1: 0xffffffff811a6320 IBS2:0x00000000011a6320
IBS_FETCH sample on cpu6 IBS0: 0x01370003186a186a IBS1: 0xffffffff81065255 IBS2:0x0000000001065255
IBS_FETCH sample on cpu7 IBS0: 0x00170004186a186a IBS1: 0x00007fbf0c687ca0 IBS2:0x000000041d345ca0
IBS_FETCH sample on cpu7 IBS0: 0x00170003186a186a IBS1: 0x000000000043bb80 IBS2:0x000000041c351b80
IBS_FETCH sample on cpu7 IBS0: 0x01370003186a186a IBS1: 0xffffffff813d5790 IBS2:0x00000000013d5790
IBS_FETCH sample on cpu7 IBS0: 0x00030001186a186a IBS1: 0xffffffff8102bd00 IBS2:0x00000000013d5d00


IBS_OP sample on cpu0 IBS0: 0x000000000006186a IBS1: 0xffffffff811a8297 IBS2: 0x0000000000490047
IBS3: 0x0000000000000000 IBS4: 0x0000070300000000 IBS5: 0x0000000000000000 IBS6: 0x0000000000000000
IBS_OP sample on cpu4 IBS0: 0x000000000006186a IBS1: 0xffffffff8100840d IBS2: 0x0000000000040004
IBS3: 0x0000000000000000 IBS4: 0x0000000000000000 IBS5: 0x0000000000000000 IBS6: 0x0000000000000000
IBS_OP sample on cpu0 IBS0: 0x000000000006186a IBS1: 0xffffffff811a8297 IBS2: 0x0000000000120008
IBS3: 0x0000000000000000 IBS4: 0x0000000700060012 IBS5: 0xffff88041df23918 IBS6: 0x000000041df23918
IBS_OP sample on cpu0 IBS0: 0x000000000006186a IBS1: 0xffffffff811a8297 IBS2: 0x0000000000270002
IBS3: 0x0000000000000000 IBS4: 0x0000064b00070092 IBS5: 0xffff88041dd93198 IBS6: 0x000000041dd93198
IBS_OP sample on cpu0 IBS0: 0x000000000006186a IBS1: 0xffffffff811a8297 IBS2: 0x00000000002d0002
IBS3: 0x0000000000000000 IBS4: 0x0000064a00070092 IBS5: 0xffff88041e3acd18 IBS6: 0x000000041e3acd18
IBS_OP sample on cpu0 IBS0: 0x000000000006186a IBS1: 0xffffffff811a8297 IBS2: 0x0000000000160006
IBS3: 0x0000000000000000 IBS4: 0x000008a000070092 IBS5: 0xffff88041e217990 IBS6: 0x000000041e217990
IBS_OP sample on cpu1 IBS0: 0x000000000006186a IBS1: 0xffffffff8100840d IBS2: 0x0000000000040004
IBS3: 0x0000000000000000 IBS4: 0x0000000000000000 IBS5: 0x0000000000000000 IBS6: 0x0000000000000000
IBS_OP sample on cpu3 IBS0: 0x000000000006186a IBS1: 0xffffffff8100840d IBS2: 0x0000000000040004
IBS3: 0x0000000000000000 IBS4: 0x0000000000000000 IBS5: 0x0000000000000000 IBS6: 0x0000000000000000
IBS_OP sample on cpu0 IBS0: 0x000000000006186a IBS1: 0xffffffff811a8297 IBS2: 0x000000000012000e
IBS3: 0x0000000000000000 IBS4: 0x0000000300060012 IBS5: 0xffff88041effa8d0 IBS6: 0x000000041effa8d0

Esp. IBS_OP is not that good looking, but it shows how to use it and
can also be beautified and extended later. It gives the user a
direction about how to access ibs.

-Robert

--
Advanced Micro Devices, Inc.
Operating System Research Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/