On Wed, Aug 24, 2022 at 11:43:10AM -0700, Dave Hansen wrote:
So, we don't have *ANY* control over where the compiler uses jump tables. The kernel just happened to add some code that uses them, fell over, and this adds a hack to get booting again.
Isn't this a bigger problem?
I had the same question already. Was thinking of maybe disabling the compiler from producing jump tables in the ident-mapped code. Tom's argument is that that might prevent the compiler from doing optimizations but I haven't talked to compiler folks whether those optimizations are even worth the effort.
Regardless, the potential problem is limited:
"# (jump-tables are implicitly disabled by RETPOLINE)"
i.e., only RETPOLINE=n builds for now which should be a minority?
I guess when this explodes somewhere else again, we will have to generalize a fix.
Thx.