On Thu, Sep 20, 2018 at 08:30:35AM -0700, Andi Kleen wrote:
> > +int intel_pmu_enable_save_guest_lbr(struct kvm_vcpu *vcpu)
> > +{
> > +   struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
> > +   struct perf_event *event;
> > +   struct perf_event_attr attr = {
> > +           .type = PERF_TYPE_RAW,
> > +           .size = sizeof(attr),
> > +           .pinned = true,
> > +           .exclude_host = true,
> > +           .sample_type = PERF_SAMPLE_BRANCH_STACK,
> > +           .branch_sample_type = PERF_SAMPLE_BRANCH_CALL_STACK |
> > +                                 PERF_SAMPLE_BRANCH_USER |
> > +                                 PERF_SAMPLE_BRANCH_KERNEL,
> 
> I think that will allocate an extra perfmon counter, right? 

I throught the same too, but I think the exclude_host/guest, whichever
is the right one makes that work for regular counters too.

That code is a wee bit magical and I didn't take the time to reverse
engineer that. It most certainly needs a comment.

Reply via email to