* [tip:x86/pti 19/20] arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup
@ 2018-02-12 11:33 kbuild test robot
2018-02-12 13:13 ` Josh Poimboeuf
2018-02-12 17:45 ` [PATCH] x86/entry/64: Fix paranoid_entry() frame pointer warning Josh Poimboeuf
0 siblings, 2 replies; 4+ messages in thread
From: kbuild test robot @ 2018-02-12 11:33 UTC (permalink / raw)
To: Dominik Brodowski; +Cc: kbuild-all, linux-kernel, tipbuild, Ingo Molnar
[-- Attachment #1: Type: text/plain, Size: 842 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/pti
head: 5a10e729bc0aa9420a23a70b169eadd229c27bc1
commit: f09d160992d129b6d8fada7543761d40f5b33596 [19/20] x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros
config: x86_64-randconfig-s0-02121550 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
git checkout f09d160992d129b6d8fada7543761d40f5b33596
# save the attached .config to linux build tree
make ARCH=x86_64
All warnings (new ones prefixed by >>):
>> arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25490 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [tip:x86/pti 19/20] arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup 2018-02-12 11:33 [tip:x86/pti 19/20] arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup kbuild test robot @ 2018-02-12 13:13 ` Josh Poimboeuf 2018-02-12 17:45 ` [PATCH] x86/entry/64: Fix paranoid_entry() frame pointer warning Josh Poimboeuf 1 sibling, 0 replies; 4+ messages in thread From: Josh Poimboeuf @ 2018-02-12 13:13 UTC (permalink / raw) To: kbuild test robot Cc: Dominik Brodowski, kbuild-all, linux-kernel, tipbuild, Ingo Molnar On Mon, Feb 12, 2018 at 07:33:27PM +0800, kbuild test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/pti > head: 5a10e729bc0aa9420a23a70b169eadd229c27bc1 > commit: f09d160992d129b6d8fada7543761d40f5b33596 [19/20] x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros > config: x86_64-randconfig-s0-02121550 (attached as .config) > compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026 > reproduce: > git checkout f09d160992d129b6d8fada7543761d40f5b33596 > # save the attached .config to linux build tree > make ARCH=x86_64 > > All warnings (new ones prefixed by >>): > > >> arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation Oops, looks like one of my suggested unwind hint changes wasn't so good for the frame pointer case. The below should fix it. I'll submit a proper patch in a little bit after running it through 0-day. diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index cfbf43366731..1c54204207d8 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -1128,6 +1128,7 @@ idtentry machine_check do_mce has_error_code=0 paranoid=1 * Return: ebx=0: need swapgs on exit, ebx=1: otherwise */ ENTRY(paranoid_entry) + UNWIND_HINT_FUNC cld movl $1, %ebx movl $MSR_GS_BASE, %ecx @@ -1141,7 +1142,7 @@ ENTRY(paranoid_entry) SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg=%rax save_reg=%r14 ret -ENDPROC(paranoid_entry) +END(paranoid_entry) /* * "Paranoid" exit path from exception stack. This is invoked ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] x86/entry/64: Fix paranoid_entry() frame pointer warning 2018-02-12 11:33 [tip:x86/pti 19/20] arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup kbuild test robot 2018-02-12 13:13 ` Josh Poimboeuf @ 2018-02-12 17:45 ` Josh Poimboeuf 2018-02-13 9:03 ` [tip:x86/pti] " tip-bot for Josh Poimboeuf 1 sibling, 1 reply; 4+ messages in thread From: Josh Poimboeuf @ 2018-02-12 17:45 UTC (permalink / raw) To: kbuild test robot Cc: Dominik Brodowski, kbuild-all, linux-kernel, tipbuild, Ingo Molnar With the following commit: f09d160992d1 ("x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros") ... one of my suggested improvements triggered a frame pointer warning: arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup The warning is correct for the build-time code, but it's actually not relevant at runtime because of paravirt patching. The paravirt swapgs call gets replaced with either a SWAPGS instruction or NOPs at runtime. Go back to the previous behavior by removing the ELF function annotation for paranoid_entry() and adding an unwind hint, which effectively silences the warning. Reported-by: kbuild test robot <fengguang.wu@intel.com> Fixes: f09d160992d1 ("x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros") Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> --- arch/x86/entry/entry_64.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index cfbf43366731..1c54204207d8 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -1128,6 +1128,7 @@ idtentry machine_check do_mce has_error_code=0 paranoid=1 * Return: ebx=0: need swapgs on exit, ebx=1: otherwise */ ENTRY(paranoid_entry) + UNWIND_HINT_FUNC cld movl $1, %ebx movl $MSR_GS_BASE, %ecx @@ -1141,7 +1142,7 @@ ENTRY(paranoid_entry) SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg=%rax save_reg=%r14 ret -ENDPROC(paranoid_entry) +END(paranoid_entry) /* * "Paranoid" exit path from exception stack. This is invoked -- 2.14.3 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [tip:x86/pti] x86/entry/64: Fix paranoid_entry() frame pointer warning 2018-02-12 17:45 ` [PATCH] x86/entry/64: Fix paranoid_entry() frame pointer warning Josh Poimboeuf @ 2018-02-13 9:03 ` tip-bot for Josh Poimboeuf 0 siblings, 0 replies; 4+ messages in thread From: tip-bot for Josh Poimboeuf @ 2018-02-13 9:03 UTC (permalink / raw) To: linux-tip-commits Cc: tglx, linux, hpa, fengguang.wu, linux-kernel, mingo, peterz, jpoimboe, torvalds Commit-ID: b3ccefaed922529e6a67de7b30af5aa38c76ace9 Gitweb: https://git.kernel.org/tip/b3ccefaed922529e6a67de7b30af5aa38c76ace9 Author: Josh Poimboeuf <jpoimboe@redhat.com> AuthorDate: Mon, 12 Feb 2018 11:45:03 -0600 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Tue, 13 Feb 2018 09:04:55 +0100 x86/entry/64: Fix paranoid_entry() frame pointer warning With the following commit: f09d160992d1 ("x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros") ... one of my suggested improvements triggered a frame pointer warning: arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup The warning is correct for the build-time code, but it's actually not relevant at runtime because of paravirt patching. The paravirt swapgs call gets replaced with either a SWAPGS instruction or NOPs at runtime. Go back to the previous behavior by removing the ELF function annotation for paranoid_entry() and adding an unwind hint, which effectively silences the warning. Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: kbuild-all@01.org Cc: tipbuild@zytor.com Fixes: f09d160992d1 ("x86/entry/64: Get rid of the ALLOC_PT_GPREGS_ON_STACK and SAVE_AND_CLEAR_REGS macros") Link: http://lkml.kernel.org/r/20180212174503.5acbymg5z6p32snu@treble Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/x86/entry/entry_64.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index cfbf433..1c5420420 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -1128,6 +1128,7 @@ idtentry machine_check do_mce has_error_code=0 paranoid=1 * Return: ebx=0: need swapgs on exit, ebx=1: otherwise */ ENTRY(paranoid_entry) + UNWIND_HINT_FUNC cld movl $1, %ebx movl $MSR_GS_BASE, %ecx @@ -1141,7 +1142,7 @@ ENTRY(paranoid_entry) SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg=%rax save_reg=%r14 ret -ENDPROC(paranoid_entry) +END(paranoid_entry) /* * "Paranoid" exit path from exception stack. This is invoked ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-02-13 9:04 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-02-12 11:33 [tip:x86/pti 19/20] arch/x86/entry/entry_64.o: warning: objtool: paranoid_entry()+0x11: call without frame pointer save/setup kbuild test robot 2018-02-12 13:13 ` Josh Poimboeuf 2018-02-12 17:45 ` [PATCH] x86/entry/64: Fix paranoid_entry() frame pointer warning Josh Poimboeuf 2018-02-13 9:03 ` [tip:x86/pti] " tip-bot for Josh Poimboeuf
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.