On Fri, Jun 16, 2017 at 10:08 AM, Stephane Eranian <[email protected]> wrote: > On Fri, Jun 16, 2017 at 9:06 AM, Andi Kleen <[email protected]> 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 <[email protected]> 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

