Re: [GIT PULL] livepatching for 5.9-rc5
From: Josh Poimboeuf <hidden>
Date: 2020-09-08 18:34:42
Also in:
lkml
On Tue, Sep 08, 2020 at 11:13:58AM -0700, Linus Torvalds wrote:
Josh, On Mon, Sep 7, 2020 at 1:20 AM Petr Mladek [off-list ref] wrote:quoted
- Workaround "unreachable instruction" objtool warnings that happen with some compiler versions.I know I said this fixes things for me, but I just realized it doesn't entirely. I wonder how I missed the remaining one: arch/x86/kvm/vmx/vmx.o: warning: objtool: vmx_handle_exit_irqoff()+0x142: unreachable instruction so apparently gcc and objtool can still disagree even without that '-flive-patching'. The unreachable code in question is after the call to handle_external_interrupt_irqoff(), and while that function is a bit odd, in this case I think it's objtool that is wrong. I think that what happens is that the function doesn't have a 'ret' instruction, and instead returns by doing a tail-call to __sanitizer_cov_trace_pc with my config. And maybe that is what confuses objtool. This is current tip-of-git of my tree, with a allmodconfig build (but the actual config will then depend on things like the gcc plugins being there too, so you may not get exactly the same thing as I do) Josh? Am I missing something, and the objtool warning is valid? But yes, that code is doing some very very special stuff with that thunk call asm, so it's hard to read the asm.
Hm, I don't think I've seen that one. We saw a similar warning in that function before, but it was caused by the combination of CONFIG_UBSAN_ALIGNMENT and CONFIG_UBSAN_TRAP, which I think Kees fixed. Can you share the .o file? At least I can't recreate with GCC 9.3.1, which is all I have at the moment. -- Josh