Messages in this thread | | | From | Arnd Bergmann <> | Date | Thu, 24 Aug 2017 12:14:27 +0200 | Subject | Re: gcc-8 objtool warnings |
| |
On Wed, Aug 23, 2017 at 6:01 PM, Josh Poimboeuf <jpoimboe@redhat.com> wrote: > On Wed, Aug 23, 2017 at 03:38:02PM +0200, Arnd Bergmann wrote: >> On Wed, Aug 23, 2017 at 2:48 PM, Josh Poimboeuf <jpoimboe@redhat.com> wrote: >> > On Wed, Aug 23, 2017 at 02:22:34PM +0200, Arnd Bergmann wrote: >> >> ... >> >> >> >> 0000000000000000 <put_cred_rcu.cold.1>: >> >> 0: e8 00 00 00 00 callq 5 <put_cred_rcu.cold.1+0x5> >> >> 1: R_X86_64_PC32 __sanitizer_cov_trace_pc-0x4 >> >> 5: 44 8b 8b 64 ff ff ff mov -0x9c(%rbx),%r9d >> >> c: 48 8b 8b 68 ff ff ff mov -0x98(%rbx),%rcx >> >> 13: 44 89 e2 mov %r12d,%edx >> >> 16: 44 8b 83 60 ff ff ff mov -0xa0(%rbx),%r8d >> >> 1d: 4c 89 ee mov %r13,%rsi >> >> 20: 48 c7 c7 00 00 00 00 mov $0x0,%rdi >> >> 23: R_X86_64_32S .rodata.str1.8+0x28 >> >> 27: e8 00 00 00 00 callq 2c <__kstrtab_creds_are_invalid+0x3> >> >> 28: R_X86_64_PC32 panic-0x4 >> > >> > Thanks. Can you send me one of the .o files? >> >> Attached here now. > > Ok, looks like I'll need to add support for this new pattern (jumping to > a .cold section in .text.unlikely). > > I'm also about to start work on fixing that other issue you found with > GCC's inefficient update of the stack pointer. > > I really appreciate your finding all these warnings (and getting advance > GCC 8 testing). Thanks again!
No worries. I've disabled the four warnings in objtool that triggered now and almost all are gone, but I still get a few warnings after doing additional randconfig builds.
find rand*/ -name \*success -mtime -2 -size +0c | xargs grep -v "sibling call from callable instruction" | grep -v "call without frame pointer save/setup" | grep -v "return with modified stack frame" | cut -f 3- -d: | sort | uniq -c 1 warning: objtool: adv76xx_log_status.cold.34()+0x338: stack state mismatch: reg1[14]=-1+0 reg2[14]=-2-24 1 warning: objtool: bnx2x_panic_dump.cold.125()+0x1c6: unsupported stack register modification 1 warning: objtool: cx25840_probe.cold.9()+0x189: stack state mismatch: reg1[3]=-2-16 reg2[3]=-1+0 1 warning: objtool: hpet_alloc.cold.6()+0x39d: stack state mismatch: reg1[14]=-1+0 reg2[14]=-2-16 1 warning: objtool: init_test_probes.cold.6()+0x3ae: leave instruction with modified stack frame 4 warning: objtool: lkdtm_ATOMIC_TIMING.cold.0()+0x0: leave instruction with modified stack frame 4 warning: objtool: lkdtm_ATOMIC_TIMING.cold.4()+0x0: leave instruction with modified stack frame 2 warning: objtool: lkdtm_REFCOUNT_TIMING.cold.1()+0x0: leave instruction with modified stack frame 3 warning: objtool: lkdtm_REFCOUNT_TIMING.cold.5()+0x0: leave instruction with modified stack frame 1 warning: objtool: mgsl_add_device.cold.27()+0x82: stack state mismatch: reg1[15]=-2-16 reg2[15]=-1+0 1 warning: objtool: mgsl_add_device.cold.41()+0x82: stack state mismatch: reg1[15]=-2-16 reg2[15]=-1+0 1 warning: objtool: mlx5_eswitch_disable_sriov.cold.19()+0xd0: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-16 1 warning: objtool: __oom_reap_task_mm.cold.10()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 1 warning: objtool: __oom_reap_task_mm.cold.12()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 2 warning: objtool: __oom_reap_task_mm.cold.3()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 1 warning: objtool: __oom_reap_task_mm.cold.31()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 1 warning: objtool: __oom_reap_task_mm.cold.7()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 2 warning: objtool: ppp_print_buffer.cold.7()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 1 warning: objtool: rndis_msg_parser.cold.6()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8 6 warning: objtool: rodata_test.cold.0()+0x31: leave instruction with modified stack frame 3 warning: objtool: rodata_test.cold.0()+0x4a: leave instruction with modified stack frame 1 warning: objtool: show_free_areas.cold.110()+0x394: stack state mismatch: reg1[15]=-1+0 reg2[15]=-2-32 1 warning: objtool: show_free_areas.cold.116()+0x239: stack state mismatch: reg1[12]=-1+0 reg2[12]=-2-32 1 warning: objtool: show_free_areas.cold.129()+0x23a: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-16 1 warning: objtool: show_free_areas.cold.18()+0x3aa: stack state mismatch: reg1[12]=-1+0 reg2[12]=-2-16 1 warning: objtool: show_free_areas.cold.21()+0x3c1: stack state mismatch: reg1[12]=-1+0 reg2[12]=-2-32 1 warning: objtool: show_free_areas.cold.21()+0x3e2: stack state mismatch: reg1[12]=-1+0 reg2[12]=-2-32 1 warning: objtool: show_free_areas.cold.24()+0x3c1: stack state mismatch: reg1[12]=-1+0 reg2[12]=-2-32 1 warning: objtool: show_free_areas.cold.27()+0x239: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-16 1 warning: objtool: show_free_areas.cold.30()+0x239: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-16 1 warning: objtool: show_free_areas.cold.31()+0x23c: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-56 1 warning: objtool: show_free_areas.cold.34()+0x24b: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-16 1 warning: objtool: snic_alloc_vnic_res.cold.2()+0x2b1: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-24 1 warning: objtool: snic_alloc_vnic_res.cold.2()+0x352: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-24 1 warning: objtool: syscon_poweroff.cold.0()+0x10: leave instruction with modified stack frame 1 warning: objtool: tda18271c2_rf_cal_init.cold.13()+0x156: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-24 3 warning: objtool: tda18271c2_rf_cal_init.cold.6()+0x156: stack state mismatch: reg1[13]=-1+0 reg2[13]=-2-24 1 warning: objtool: tea5761_autodetection.cold.1()+0x3c: leave instruction with modified stack frame 1 warning: objtool: tea5761_autodetection.cold.5()+0x3c: leave instruction with modified stack frame 1 warning: objtool: test.cold.1()+0x7e: stack state mismatch: reg1[3]=-1+0 reg2[3]=-2-32 1 warning: objtool: test.cold.3()+0x6e: stack state mismatch: reg1[12]=-1+0 reg2[12]=-2-32 1 warning: objtool: test.cold.4()+0x7e: stack state mismatch: reg1[3]=-1+0 reg2[3]=-2-32 1 warning: objtool: test.cold.5()+0x90: stack state mismatch: reg1[3]=-1+0 reg2[3]=-2-32 1 warning: objtool: .text.unlikely: unexpected end of section 1 warning: objtool: __twa_shutdown.cold.26()+0x1a: leave instruction with modified stack frame 1 warning: objtool: __twl_shutdown.cold.10()+0x1c: leave instruction with modified stack frame 1 warning: objtool: __twl_shutdown.cold.19()+0x1c: leave instruction with modified stack frame 1 warning: objtool: vc4_hvs_dump_state.cold.1()+0x1e: stack state mismatch: reg1[14]=-1+0 reg2[14]=-2-16 1 warning: objtool: vt596_dump_regs.cold.1()+0x1a: stack state mismatch: cfa1=6+16 cfa2=7+8 1 warning: objtool: wcn36xx_smd_start.cold.20()+0x32: unsupported stack register modification 1 warning: objtool: wsm_cmd_send.cold.18()+0x48: stack state mismatch: reg1[14]=-1+0 reg2[14]=-2-24 1 warning: objtool: xen_callback_vector.cold.18()+0x92: leave instruction with modified stack frame 1 warning: objtool: xlvbd_flush.cold.20()+0x3c: leave instruction with modified stack frame 1 warning: objtool: xlvbd_flush.cold.5()+0x3f: leave instruction with modified stack frame
I'll send you some more object files as private mail.
Arnd
| |