Re: [RFC PATCH 2/9] perf: Add ability to dump user regs

Stephane Eranian
2010-10-14T11:06:40Z

Hi,

On Wed, Oct 13, 2010 at 9:20 AM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Wed, 2010-10-13 at 07:06 +0200, Frederic Weisbecker wrote:
>> Add new PERF_SAMPLE_UREGS to perf sample type. This will dump the
>> user space context as it was before the user entered the kernel for
>> whatever reason.
>>
>> This is going to be useful to bring Dwarf CFI based stack unwinding
>> on top of samples.
>
> This doesn't address any of the issues that were raised previously.
>
> There's a reason we don't have PERF_SAMPLE_*REGS like things.
>
We definitively need to find a solution to this problem. It is important
to export this kind of information to users when using PEBS, for instance

What is exported depends on what is monitored and not just the ABI
of the kernel. On a 64-bit kernel, you may capture samples from
i386 or x86_64. Somehow the record needs to be self describing.

What about something like:
struct {
int type; /* 32-bit, 64-bit */
int nr; /* number of regs */
struct {
int reg_name; /* taken from an enum with all possible regs */
u64 reg_value;
} [0]
};