Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb8417aa authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar
Browse files

perf/x86/intel: Remove division from the intel_pmu_drain_pebs_nhm() hot path



Only do the division in case we have to print the result out in a warning.

Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-43nl31erfbajwpfj254f6zji@git.kernel.org


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 7f2ee91f
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -944,7 +944,7 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs)
	struct perf_event *event = NULL;
	void *at, *top;
	u64 status = 0;
	int bit, n;
	int bit;

	if (!x86_pmu.pebs_active)
		return;
@@ -954,16 +954,16 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs)

	ds->pebs_index = ds->pebs_buffer_base;

	n = (top - at) / x86_pmu.pebs_record_size;
	if (n <= 0)
	if (unlikely(at > top))
		return;

	/*
	 * Should not happen, we program the threshold at 1 and do not
	 * set a reset value.
	 */
	WARN_ONCE(n > x86_pmu.max_pebs_events,
		  "Unexpected number of pebs records %d\n", n);
	WARN_ONCE(top - at > x86_pmu.max_pebs_events * x86_pmu.pebs_record_size,
		  "Unexpected number of pebs records %ld\n",
		  (top - at) / x86_pmu.pebs_record_size);

	for (; at < top; at += x86_pmu.pebs_record_size) {
		struct pebs_record_nhm *p = at;