lkml.org 
[lkml]   [2012]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 02/16] perf: Add ability to attach registers dump to sample
From
On Thu, May 24, 2012 at 11:50 AM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Wed, 2012-05-23 at 21:32 +0200, Jiri Olsa wrote:
>>  /*
>> + * Values for sample_regs when PERF_SAMPLE_REGS is set.
>> + * Defines register set to be attached to the sample.
>> + */
>> +enum perf_sample_regs {
>> +       PERF_SAMPLE_REGS_USER   = 1U << 0, /* user registers */
>> +       PERF_SAMPLE_REGS_MAX    = 1U << 1, /* non-ABI */
>> +};
>
>
>
>> +       __u64   sample_regs; /* enum perf_sample_regs */
>> +
>> +       /*
>> +        * Arch specific mask for PERF_SAMPLE_REGS_USER setup.
>> +        * Defines set of user regs to dump on samples.
>> +        * See asm/perf_regs.h for details.
>> +        */
>> +       __u64   sample_regs_user;
>
> This all just smells.. :/
>
> So you're wasting 64 bits to specify PERF_SAMPLE_REGS_USER while also
> implying we'll need another u64 for every other value of
> perf_sample_regs?
>
> What are we doing here and why?
>
I think this is related to a discusion we had earlier about which
machine state you want
to sample.

There are 3 possible machine states:
1- user level (even when sample is in kernel AND assuming you did
not hit a kernel only thread)
2- interrupted state (@ PMU interrupt)
3- precise state (state captured by PEBS on Intel, for instance)

Jiri is only interested in 1/. I am interested in the other two as well.

Question: is there a situation where we could need more than one machine
state per sample?

If not, then a single bitmask is enough.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2012-05-24 13:01    [W:0.272 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site