On Mon, Feb 18, 2019 at 11:32 PM Borislav Petkov <bp@xxxxxxxxx> wrote: > > On Mon, Feb 18, 2019 at 06:10:57PM +0900, Masahiro Yamada wrote: > > Could you send v2 as I suggested? > > Your commit log describes your motivation perfectly. > > > > (I lost the applicable patch because > > I just modified the code locally and pasted it > > into the previous email.) > > Sure, here it is. > > Thx. Applied to linux-kbuild. Thanks. > --- > From: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > Date: Sun, 25 Nov 2018 23:58:00 +0100 > Subject: [PATCH] kbuild: Disable extra debugging info in .s output > > Modern gcc adds view assignments, reset assertion checking in .loc > directives and a couple more additional debug markers, which clutters > the asm output unnecessarily: > > For example: > > bsp_resume: > .LFB3466: > .loc 1 1868 1 is_stmt 1 view -0 > .cfi_startproc > .loc 1 1869 2 view .LVU73 > # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) > .loc 1 1869 14 is_stmt 0 view .LVU74 > movq this_cpu(%rip), %rax # this_cpu, this_cpu > movq 64(%rax), %rax # this_cpu.94_1->c_bsp_resume, _2 > # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) > .loc 1 1869 5 view .LVU75 > testq %rax, %rax # _2 > je .L8 #, > .loc 1 1870 3 is_stmt 1 view .LVU76 > movq $boot_cpu_data, %rdi #, > jmp __x86_indirect_thunk_rax > > or > .loc 2 57 9 view .LVU478 > .loc 2 57 9 view .LVU479 > .loc 2 57 9 view .LVU480 > .loc 2 57 9 view .LVU481 > .LBB1385: > .LBB1383: > .LBB1379: > .LBB1377: > .LBB1375: > .loc 2 57 9 view .LVU482 > .loc 2 57 9 view .LVU483 > movl %edi, %edx # cpu, cpu > .LVL87: > .loc 2 57 9 is_stmt 0 view .LVU484 > > That MOV in there is drowned in debugging information and latter makes > it hard to follow the asm. And that DWARF info is not really needed for > asm output staring. > > Disable the debug information generation which clutters the asm output > unnecessarily: > > bsp_resume: > # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) > movq this_cpu(%rip), %rax # this_cpu, this_cpu > movq 64(%rax), %rax # this_cpu.94_1->c_bsp_resume, _2 > # arch/x86/kernel/cpu/common.c:1869: if (this_cpu->c_bsp_resume) > testq %rax, %rax # _2 > je .L8 #, > # arch/x86/kernel/cpu/common.c:1870: this_cpu->c_bsp_resume(&boot_cpu_data); > movq $boot_cpu_data, %rdi #, > jmp __x86_indirect_thunk_rax > .L8: > # arch/x86/kernel/cpu/common.c:1871: } > rep ret > .size bsp_resume, .-bsp_resume > > [ bp: write commit message. ] > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > Signed-off-by: Borislav Petkov <bp@xxxxxxx> > Cc: Michal Marek <michal.lkml@xxxxxxxxxxx> > Cc: linux-kbuild@xxxxxxxxxxxxxxx > --- > Makefile | 13 ++++++++----- > scripts/Makefile.build | 2 +- > 2 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/Makefile b/Makefile > index 96c5335e7ee4..c5e7d3ac8bd2 100644 > --- a/Makefile > +++ b/Makefile > @@ -729,25 +729,28 @@ KBUILD_CFLAGS += -fomit-frame-pointer > endif > endif > > -KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments) > +DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments) > > ifdef CONFIG_DEBUG_INFO > ifdef CONFIG_DEBUG_INFO_SPLIT > -KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g) > +DEBUG_CFLAGS += $(call cc-option, -gsplit-dwarf, -g) > else > -KBUILD_CFLAGS += -g > +DEBUG_CFLAGS += -g > endif > KBUILD_AFLAGS += -Wa,-gdwarf-2 > endif > ifdef CONFIG_DEBUG_INFO_DWARF4 > -KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,) > +DEBUG_CFLAGS += $(call cc-option, -gdwarf-4,) > endif > > ifdef CONFIG_DEBUG_INFO_REDUCED > -KBUILD_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ > +DEBUG_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ > $(call cc-option,-fno-var-tracking) > endif > > +KBUILD_CFLAGS += $(DEBUG_CFLAGS) > +export DEBUG_CFLAGS > + > ifdef CONFIG_FUNCTION_TRACER > ifdef CONFIG_FTRACE_MCOUNT_RECORD > # gcc 5 supports generating the mcount tables directly > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index fd03d60f6c5a..8f5c86da77b1 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -104,7 +104,7 @@ modkern_cflags = \ > quiet_modtag = $(if $(part-of-module),[M], ) > > quiet_cmd_cc_s_c = CC $(quiet_modtag) $@ > -cmd_cc_s_c = $(CC) $(c_flags) $(DISABLE_LTO) -fverbose-asm -S -o $@ $< > +cmd_cc_s_c = $(CC) $(filter-out $(DEBUG_CFLAGS), $(c_flags)) $(DISABLE_LTO) -fverbose-asm -S -o $@ $< > > $(obj)/%.s: $(src)/%.c FORCE > $(call if_changed_dep,cc_s_c) > -- > 2.19.1 > > -- > Regards/Gruss, > Boris. > > Good mailing practices for 400: avoid top-posting and trim the reply. -- Best Regards Masahiro Yamada