Re: [tip:sched/core] perf/core, sched: Don't use clock function pointer to determine clock

From: Daniel Lezcano
Date: Wed Apr 20 2016 - 01:06:27 EST


On Tue, Apr 19, 2016 at 02:34:50AM -0700, tip-bot for Alexander Shishkin wrote:
> Commit-ID: f454bfddf6ba557381d8bf5df50eff778602ff23
> Gitweb: http://git.kernel.org/tip/f454bfddf6ba557381d8bf5df50eff778602ff23
> Author: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> AuthorDate: Thu, 14 Apr 2016 14:59:49 +0300
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Tue, 19 Apr 2016 10:55:29 +0200
>
> perf/core, sched: Don't use clock function pointer to determine clock
>
> Now that local_clock() is explicitly inlined in sched.h, taking its
> pointer would uninline it in the compilation unit where it's done,
> making (among other things) comparing pointers to this function
> produce different results in different compilation units.
>
> Case in point, x86 perf core's user page updating function compares
> event's clock against &local_clock to see if it needs to set zero
> time offset related bits in the page.
>
> This patch fixes the latter by looking at the "use_clockid" event
> attribute instead, to determine whether local clock is used. Fixing
> the uninlined local_clock() in perf core is left as an exercise for
> the author of the prior work.

Ouch! Good exercise :)