lkml.org 
[lkml]   [2014]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH v5 12/20] x86: perf: intel_pt: Intel PT PMU driver
Date
Peter Zijlstra <peterz@infradead.org> writes:

> On Fri, Oct 31, 2014 at 03:13:35PM +0200, Alexander Shishkin wrote:
>> >> + if (test_cpu_cap(&boot_cpu_data, X86_FEATURE_INTEL_PT)) {
>> >> + for (i = 0; i < PT_CPUID_LEAVES; i++)
>> >> + cpuid_count(20, i,
>> >> + &pt_pmu.caps[CR_EAX + i * 4],
>> >> + &pt_pmu.caps[CR_EBX + i * 4],
>> >> + &pt_pmu.caps[CR_ECX + i * 4],
>> >> + &pt_pmu.caps[CR_EDX + i * 4]);
>> >> + } else
>> >> + return -ENODEV;
>> >
>> > I would really rather you use bitfield unions for cpuid stuff, have a
>> > look at union cpuid10_e[abd]x as used in
>> > perf_event_intel.c:intel_pmu_init().
>>
>> It looks like it would only work for the first cpuid leaf, but we'll
>> need more than that. And the array makes it easier to allocate
>> attributes for sysfs en masse.
>>
>> I guess it doesn't really matter if we use unions unless these bits need
>> to be exported to other parts of the kernel? But *that* is hardly a good
>> idea. What do you think?
>
> Ah yes, the generation. C is lacking there isn't it :/
>
> Now I'm not sure we want to export all the bits you're using though.
> Like the topa_multiple_entires, that appears an implementation detail
> userspace should not really care about either way.

Actually, userspace can make assumptions about lost data from this
bit. But there are others, such as encoded address length. In future
there will also be several "caps" with allowed values for certain bit
fields in RTIT_CTL, such as timing packet frequencies.

Regards,
--
Alex


\
 
 \ /
  Last update: 2014-11-11 13:01    [W:0.394 / U:0.964 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site