Re: [tip:perf/core] perf/x86/intel: Clean-up/reduce PEBS code

From: H. Peter Anvin
Date: Mon Sep 16 2013 - 02:19:10 EST


On 09/16/2013 01:07 AM, Peter Zijlstra wrote:
On Fri, Sep 13, 2013 at 11:18:21PM -0700, Andi Kleen wrote:
tip-bot for Peter Zijlstra <tipbot@xxxxxxxxx> writes:
+
+ at = (struct pebs_record_nhm *)(unsigned long)ds->pebs_buffer_base;
+ top = (struct pebs_record_nhm *)(unsigned long)ds->pebs_index;

ds->pebs_index = ds->pebs_buffer_base;

+ n = (top - at) / x86_pmu.pebs_record_size;


This adds a full slow division to the PEBS hot path.

Does not seem like a improvement to me.

There already was an implicit division there, and
sizeof(pebs_record_hsw) = 176, can it really optimize that constant
division?


gcc can optimize ANY constant division, if nothing else then by reciprocal multiplication.

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/