Re: [PATCH 2/4] objtool: Implement jump_assert for _static_cpu_has()

From: Josh Poimboeuf
Date: Mon Jan 15 2018 - 13:04:18 EST


On Mon, Jan 15, 2018 at 05:44:30PM +0100, Peter Zijlstra wrote:
> Unlike the jump_label bits, static_cpu_has is implemented with
> alternatives. Sadly it doesn't readily distinguish itself from any
> other alternatives.
>
> Use a heuristic to guess at it :/
>
> But like jump_labels, make static_cpu_has set br_static on the
> instructions after the static branch such that we can assert on it.

This seems a bit heavy handed and fragile, though maybe it is the best
way. Still I wonder if there's a better way to do it.

Some quick ideas:

a) Somehow use __jump_table in the _static_cpu_has() macro?

b) Add another special annotation to tell objtool where
_static_cpu_has() locations are?

May need to ruminate on this one a bit...

--
Josh