Re: [PATCH 18/46] entry, lto: Mark raw_irqentry_exit_cond_resched() as __visible
From: Andi Kleen
Date: Fri Nov 18 2022 - 20:43:44 EST
Sure, they can play around with it but that does not require to merge
all this nonsensical ballast for a half thought out compiler.
You are referring to __visible?
TBH I don't understand the problem. In general __visible is useful
documentation,
so you know something is used from assembler or other strange contexts.
Doing such things
explicitly marked instead of implicitly hidden and they just happen to
work by accident
seems cleaner to me.
I can also see the __visible markings being useful for other purposes,
e.g. static analysis tools or
dynamic instrumentation like the various sanitizers. Everything that is
referenced outside
the normal code that the compiler sees may need some special handling.
That said I don't see the point of __visible_in_lto either, it should be
just all __visible.
Similar argument applies to __noreorder, it's also useful documentation.
There are a few real workarounds in the patchkit that are a bit ugly,
but __visible isn't it.
If they want to do that they can apply the pile of patches as provided
and play around.
It's very difficult to maintain out of tree, while in tree it's much
simpler.
I think Linux should support its primary compiler well and not give up
due to relatively small obstacles.
-Andi