On Fri, Jun 16, 2017 at 10:08 AM, Stephane Eranian <eran...@google.com> wrote: > On Fri, Jun 16, 2017 at 9:06 AM, Andi Kleen <a...@linux.intel.com> wrote: >> On Thu, Jun 15, 2017 at 11:52:07PM -0700, Stephane Eranian wrote: >>> Andi, >>> >>> On Thu, Jun 15, 2017 at 4:18 PM, Andi Kleen <a...@linux.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. >> >> Ok that's a reasonable argument for reporting it separately, like >> in your original patch. >> > Yeah, I think it is easier and more portable, especially on hardware with a > PEBS-like mechanism but no branch buffer (like LBR). FYI, I did do a test > implementation yesterday to evaluate the difficulty. > A more generalized usage of the feature is to evaluate the amount of skid for any precise event.
>> -Andi