Re: [PATCH RFC V2 1/1] x86, perf: Add a freq pmu driver

Stephane Eranian
2015-07-21T06:22:01Z

On Mon, Jul 20, 2015 at 11:01 PM, Andy Lutomirski <luto@amacapital.net> wrote:
> On Mon, Jul 20, 2015 at 8:10 PM, Stephane Eranian <eranian@google.com> wrote:
>> On Mon, Jul 20, 2015 at 8:49 AM, Kan Liang <kan.liang@intel.com> wrote:
>>> From: Andy Lutomirski <luto@kernel.org>
>>>
>>> This patch adds freq PMU to support time and freq related counters
>>> includes TSC, IA32_APERF, IA32_MPERF and IA32_PPERF.
>>>
>>> The events are exposed in sysfs for use by perf stat and other tools.
>>> The files are under /sys/devices/freq/events/
>>>
>>> These events only support system-wide mode counting.
>>>
>>> The PMU type (attr->type) is PERF_TYPE_FREQ.
>>>
>>> Example:
>>>
>>> To caculate the CPU%
>>> CPU_Utilization = CPU_CLK_UNHALTED.REF_TSC / TSC
>>>
>>> $ perf stat -e '{ref-cycles,freq/tsc/}' -C0 -- taskset -c 0 sleep 1
>>> 3164023,,ref-cycles,1048387386,100.00
>>> 2410812089,,freq/tsc/,1050022373,100.00
>>> The CPU% for sleep is 0.13%.
>>>
>> This event is system-wide only. Thus, the kernel should return
>> an error when you try to use it in per-thread mode. That would
>> be more consistent with RAPL and uncore events.
>
> I don't know enough about perf's inner workings to be sure, but can't
> perf context switch free-running counters like this?
>
It should be able to but your patch does not seem to do this. I get zero
count when I try.