[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABPqkBQCbiW=b0kXXCUwh_e1FFTNLgHrA8en2Q1_Ov-W9-NBcQ@mail.gmail.com>
Date: Thu, 15 Jun 2017 23:52:07 -0700
From: Stephane Eranian <eranian@...gle.com>
To: Andi Kleen <ak@...ux.intel.com>
Cc: LKML <linux-kernel@...r.kernel.org>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
"mingo@...e.hu" <mingo@...e.hu>,
"Liang, Kan" <kan.liang@...el.com>, Jiri Olsa <jolsa@...hat.com>
Subject: Re: [PATCH 0/5] perf: add support for capturing skid IP
Andi,
On Thu, Jun 15, 2017 at 4:18 PM, Andi Kleen <ak@...ux.intel.com> wrote:
>> Looking at this approach, the user interface is straightforward,
>> implementation in the x86 code is a bit more hairy because of the way
>> the branch_stack is captured, via the cpuc->lbr_entries. If you assume
>> that SKID_IP cannot be used with any other branch stack mode, then it
>> is easy. It becomes messy if you don't.
>
> That should be fine. After all if you have real LBRs you don't need
> the skid IP.
>
Yes, you still do. This is not the same thing. LBR captures only taken branches.
I care about taken AND non-taken branches and I don't want to sample on a
non-taken event, assuming it is available.
You need to inject the skid ip into the LBR stack somehow. Either
directly in the
registers or in the cpuc->lbr_entries. The injection can only happen
on interrupt
whereas the LBR captures 32 branches. So you'd have the skid ip info
only for the
most recent branch in the stack.
Powered by blists - more mailing lists