On Fri, Nov 16, 2018 at 07:20:55AM -0800, [email protected] wrote:
> From: Kan Liang <[email protected]>
> 
> The client IMC bandwidth events return very huge result.
>   perf stat -e uncore_imc/data_reads/ -e uncore_imc/data_writes/ -I
>   10000 -a
>   10.000117222 34,788.76 MiB uncore_imc/data_reads/
>   10.000117222 8.26 MiB uncore_imc/data_writes/
>   20.000374584 34,842.89 MiB uncore_imc/data_reads/
>   20.000374584 10.45 MiB uncore_imc/data_writes/
>   30.000633299 37,965.29 MiB uncore_imc/data_reads/
>   30.000633299 323.62 MiB uncore_imc/data_writes/
>   40.000891548 41,012.88 MiB uncore_imc/data_reads/
>   40.000891548 6.98 MiB uncore_imc/data_writes/
>   50.001142480 1,125,899,906,621,494.75 MiB uncore_imc/data_reads/
>   50.001142480 6.97 MiB uncore_imc/data_writes/
> 
> The client IMC events are freerunning counters. They still use the
> old event encoding format (0x1 for data_read and 0x2 for data write).
> The counter bit width is calculated by common code, which assume that
> the standard encoding format is used for the freerunning counters.
> Error bit width information is calculated.

So far so good; some client IMC events have a different format and need
converting.

> The event->attr.config, which directly from user space, should not be
> used by the functions of freerunning counters.
> For client IMC events, the attr.config needs to be converted to the
> standard encoding format. The modified event config will be stored in
> event->hw.config.
> For other freerunning counters, the attr.config has the correct format.
> Just save it in event->hw.config.
> Using event->hw.config to replace event->attr.config for the functions
> of freerunning counters.

This above section seems unclear/confusing at best. The first sentence
is actively wrong; it lost the 'client IMC' specification.

Please restructure.

Reply via email to