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

Stephane Eranian
2015-03-02T21:22:26Z

On Mon, Mar 2, 2015 at 4:19 PM, Vince Weaver <vincent.weaver@maine.edu> wrote:
> On Mon, 2 Mar 2015, Stephane Eranian wrote:
>
>> vince,
>
>> PEBS machine state. Problem is that there is only one set of pt_regs passed to
>> __intel_pmu_pebs_event(). And if REGS_INTR is set, then the pt_regs
>> registers are
>> indeed overwritten with PEBS captured state. To avoid the issue, we
>> would have to
>> carry around two sets of pt_regs.
>
> I don't think we have to carry around both (would that ever be useful?)
> Just that the behavior is a bit surprising and I should document it in the
> manpage.
>
> One question I do have: if it never makes sense to measure REGS_USER and
> REGS_INTR at the same time, why was the latter added at all? Why not just
> have the REGS_USER information automatically upgrade to REGS_INTR if
> precise_ip is high enough?
>
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.