Messages in this thread | | | Date | Tue, 26 Mar 2019 15:24:41 -0700 | From | Andi Kleen <> | Subject | Re: [PATCH V4 04/23] perf/x86/intel: Support adaptive PEBSv4 |
| |
> + for (at = base; at < top; at += cpuc->pebs_record_size) { > + u64 pebs_status; > + > + pebs_status = get_pebs_status(at) & cpuc->pebs_enabled; > + pebs_status &= mask; > + > + for_each_set_bit(bit, (unsigned long *)&pebs_status, size) > + counts[bit]++; > + }
On Icelake pebs_status is always reliable, so I don't think we need the two pass walking.
-Andi
> + > + for (bit = 0; bit < size; bit++) { > + if (counts[bit] == 0) > + continue; > + > + event = cpuc->events[bit]; > + if (WARN_ON_ONCE(!event)) > + continue; > + > + if (WARN_ON_ONCE(!event->attr.precise_ip)) > + continue; > + > + __intel_pmu_pebs_event(event, iregs, base, > + top, bit, counts[bit], > + setup_pebs_adaptive_sample_data); > + } > +}
| |