On Tue, Aug 27, 2019 at 10:43:27AM +0800, He Zhe wrote: > > > On 8/26/19 11:18 PM, Josh Poimboeuf wrote: > > On Mon, Aug 26, 2019 at 10:42:53PM +0800, He Zhe wrote: > >> Hi All, > >> > >> Since 3193c0836f20 ("bpf: Disable GCC -fgcse optimization for ___bpf_prog_run()"), > >> We have got the following warning, > >> kernel/bpf/core.o: warning: objtool: ___bpf_prog_run.cold()+0x7: call without frame pointer save/setup > >> > >> If reverting the above commit, we will get the following warning, > >> kernel/bpf/core.o: warning: objtool: ___bpf_prog_run()+0x8b9: sibling call from callable instruction with modified stack frame > >> if CONFIG_RETPOLINE=n, and no warning if CONFIG_RETPOLINE=y > > Can you please share the following: > > > > - core.o file > > Attached. > > > > > The following would also be helpful for me to try to recreate it: > > > > - config file > > - compiler version > > - kernel version > > I pasted them in the other reply. Thanks. I was able to recreate. I reduced it to: void a(b); __attribute__((optimize(""))) c(void) { a(); } Apparently '__attribute__((optimize()))' is overwriting GCC cmdline flags, including -fno-omit-frame-pointer. I had assumed it would append instead of replace. I'm guessing this is a GCC "feature" instead of a bug. I'll need to follow up. -- Josh