gcov: enable GCOV_PROFILE_ALL for x86_64
Enable gcov profiling of the entire kernel on x86_64. Required changes include disabling profiling for: * arch/kernel/acpi/realmode and arch/kernel/boot/compressed: not linked to main kernel * arch/vdso, arch/kernel/vsyscall_64 and arch/kernel/hpet: profiling causes segfaults during boot (incompatible context) Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Huang Ying <ying.huang@intel.com> Cc: Li Wei <W.Li@Sun.COM> Cc: Michael Ellerman <michaele@au1.ibm.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Heiko Carstens <heicars2@linux.vnet.ibm.com> Cc: Martin Schwidefsky <mschwid2@linux.vnet.ibm.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: WANG Cong <xiyou.wangcong@gmail.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Jeff Dike <jdike@addtoit.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2521f2c228
commit
7bf99fb673
|
@ -70,6 +70,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
|
||||||
$(call cc-option, -mpreferred-stack-boundary=2)
|
$(call cc-option, -mpreferred-stack-boundary=2)
|
||||||
KBUILD_CFLAGS += $(call cc-option, -m32)
|
KBUILD_CFLAGS += $(call cc-option, -m32)
|
||||||
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
||||||
|
GCOV_PROFILE := n
|
||||||
|
|
||||||
$(obj)/bzImage: asflags-y := $(SVGA_MODE)
|
$(obj)/bzImage: asflags-y := $(SVGA_MODE)
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
|
KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
|
||||||
|
|
||||||
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
||||||
|
GCOV_PROFILE := n
|
||||||
|
|
||||||
LDFLAGS := -m elf_$(UTS_MACHINE)
|
LDFLAGS := -m elf_$(UTS_MACHINE)
|
||||||
LDFLAGS_vmlinux := -T
|
LDFLAGS_vmlinux := -T
|
||||||
|
|
|
@ -24,6 +24,8 @@ CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp)
|
||||||
CFLAGS_hpet.o := $(nostackp)
|
CFLAGS_hpet.o := $(nostackp)
|
||||||
CFLAGS_tsc.o := $(nostackp)
|
CFLAGS_tsc.o := $(nostackp)
|
||||||
CFLAGS_paravirt.o := $(nostackp)
|
CFLAGS_paravirt.o := $(nostackp)
|
||||||
|
GCOV_PROFILE_vsyscall_64.o := n
|
||||||
|
GCOV_PROFILE_hpet.o := n
|
||||||
|
|
||||||
obj-y := process_$(BITS).o signal.o entry_$(BITS).o
|
obj-y := process_$(BITS).o signal.o entry_$(BITS).o
|
||||||
obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
|
obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
|
||||||
|
|
|
@ -42,6 +42,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D_WAKEUP -D__KERNEL__ \
|
||||||
$(call cc-option, -mpreferred-stack-boundary=2)
|
$(call cc-option, -mpreferred-stack-boundary=2)
|
||||||
KBUILD_CFLAGS += $(call cc-option, -m32)
|
KBUILD_CFLAGS += $(call cc-option, -m32)
|
||||||
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
||||||
|
GCOV_PROFILE := n
|
||||||
|
|
||||||
WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y))
|
WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y))
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,7 @@ quiet_cmd_vdso = VDSO $@
|
||||||
-Wl,-T,$(filter %.lds,$^) $(filter %.o,$^)
|
-Wl,-T,$(filter %.lds,$^) $(filter %.o,$^)
|
||||||
|
|
||||||
VDSO_LDFLAGS = -fPIC -shared $(call ld-option, -Wl$(comma)--hash-style=sysv)
|
VDSO_LDFLAGS = -fPIC -shared $(call ld-option, -Wl$(comma)--hash-style=sysv)
|
||||||
|
GCOV_PROFILE := n
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install the unstripped copy of vdso*.so listed in $(vdso-install-y).
|
# Install the unstripped copy of vdso*.so listed in $(vdso-install-y).
|
||||||
|
|
|
@ -34,7 +34,7 @@ config GCOV_KERNEL
|
||||||
config GCOV_PROFILE_ALL
|
config GCOV_PROFILE_ALL
|
||||||
bool "Profile entire Kernel"
|
bool "Profile entire Kernel"
|
||||||
depends on GCOV_KERNEL
|
depends on GCOV_KERNEL
|
||||||
depends on S390 || X86_32
|
depends on S390 || X86
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
This options activates profiling for the entire kernel.
|
This options activates profiling for the entire kernel.
|
||||||
|
|
Loading…
Reference in New Issue