Messages in this thread | | | Date | Mon, 19 Nov 2018 16:50:18 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH V2] perf/x86/intel/uncore: Fix client IMC events return huge result |
| |
On Fri, Nov 16, 2018 at 07:20:55AM -0800, kan.liang@linux.intel.com wrote: > From: Kan Liang <kan.liang@linux.intel.com> > > 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.
| |