Re: [patch] perf_event_open.2: 3.19 PERF_SAMPLE_REGS_INTR support

Stephane Eranian
2015-03-02T22:30:29Z

Vince,

On Mon, Mar 2, 2015 at 5:23 PM, Vince Weaver <vincent.weaver@maine.edu> wrote:
> On Mon, 2 Mar 2015, Stephane Eranian wrote:
>
>
>> Vince, REGS_USER is user ONLY. It does not capture machine state if PMU
>> interrupt occurred inside the kernel. REGS_USER is useful in support of dwarf
>> based user level call stack unwinding. Otherwise REGS_INTR is what most
>> analysis tools need.
>
> so the summary is:
>
> REGS_USER : gives you the registers at the time of interrupt,
> but always in user mode (if in kernel reports
> last ip before entered kernel)
> useful for stack unwinding
>
> REGS_INTR and precise_ip=0:
> same as REGS_USER
>
No. Reports the machine state at PMU interrupt, kernel or user space.

> REGS_INTR and precise_ip>0 and PEBS hardware:
> gives you the register state at time
> of interrupt. Can be inside of kernel.
>
Gives you the machine state at the time the sampled instruction retired.
There is skid between the moment the instruction is sampled by PEBS
and the PMU interrupting at that even when PEBS has only one entry.
>
> do not enable REGS_USER and REG_INTR at the same time
> as REGS_USER will have REG_INTR values and
> cannot be used for user stack unwinding
>
> Vince