Re: [PATCH v7 0/4] kexec: Fix kexec_file_load for llvm16 with PGO
From: Song Liu <song@kernel.org>
Date: 2023-09-08 22:53:20
Also in:
kexec, linux-riscv, lkml, llvm, stable
On Fri, Sep 8, 2023 at 2:52 PM Ricardo Ribalda [off-list ref] wrote:
Hi Song On Fri, 8 Sept 2023 at 23:48, Song Liu [off-list ref] wrote:quoted
Hi Ricardo, Thanks for your kind reply. On Fri, Sep 8, 2023 at 2:18 PM Ricardo Ribalda [off-list ref] wrote:quoted
Hi Song On Fri, 8 Sept 2023 at 01:08, Song Liu [off-list ref] wrote:quoted
Hi Ricardo and folks, On Fri, May 19, 2023 at 7:48 AM Ricardo Ribalda [off-list ref] wrote:quoted
When upreving llvm I realised that kexec stopped working on my test platform. The reason seems to be that due to PGO there are multiple .text sections on the purgatory, and kexec does not supports that. Signed-off-by: Ricardo Ribalda <redacted>We are seeing WARNINGs like the following while kexec'ing a PGO and LTO enabled kernel: WARNING: CPU: 26 PID: 110894 at kernel/kexec_file.c:919 kexec_load_purgatory+0x37f/0x390 AFAICT, the warning was added by this set, and it was triggered when we have many .text sections in purgatory.ro. The kexec was actually successful. So I wonder whether we really need the WARNING here. If we disable LTO (PGO is still enabled), we don't see the WARNING any more. I also tested an older kernel (5.19 based), where we also see many .text sections with LTO. It kexec()'ed fine. (It doesn't have the WARN_ON() in kexec_purgatory_setup_sechdrs).You have been "lucky" that the code has chosen the correct start address, you need to modify the linker script of your kernel to disable PGO. You need to backport a patch like this: https://lore.kernel.org/lkml/CAPhsuW5_qAvV0N3o+hOiAnb1=buJ1pLzqYW9D+Bwft6hxJvAeQ@mail.gmail.com/T/#md68b7f832216b0c56bbec0c9b07332e180b9ba2b (local)We already have this commit in our branch. AFAICT, the issue was triggered by LTO. So something like the following seems fixes it (I haven't finished the end-to-end test yet). Does this change make sense to you?if the end-to-end works, please send it as a patch to the mailing list. Thanks! :)
OK, it works (AFAICT). Sending the patch. Thanks, Song