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

Andy Lutomirski
2015-07-21T06:23:58Z

On Mon, Jul 20, 2015 at 11:21 PM, Stephane Eranian <eranian@google.com> wrote:
> 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.

Peter, help? I'm guessing the fix is a line of two of code, but I
have no idea what line or two.

--Andy

--
Andy Lutomirski
AMA Capital Management, LLC