diff options
| author | Peter Oberparleiter <oberpar@linux.vnet.ibm.com> | 2009-06-17 19:28:09 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 16:03:58 -0400 |
| commit | 7bf99fb673f18408be1ebc958321ef4c3f6da9e2 (patch) | |
| tree | 30913cc5304597b39f1a910997e4f8ad3c3350b4 | |
| parent | 2521f2c228ad750701ba4702484e31d876dbc386 (diff) | |
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>
| -rw-r--r-- | arch/x86/boot/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/boot/compressed/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/acpi/realmode/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/vdso/Makefile | 1 | ||||
| -rw-r--r-- | kernel/gcov/Kconfig | 2 |
6 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile index 8d16ada2504..ec749c2bfdd 100644 --- a/arch/x86/boot/Makefile +++ b/arch/x86/boot/Makefile | |||
| @@ -70,6 +70,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ | |||
| 70 | $(call cc-option, -mpreferred-stack-boundary=2) | 70 | $(call cc-option, -mpreferred-stack-boundary=2) |
| 71 | KBUILD_CFLAGS += $(call cc-option, -m32) | 71 | KBUILD_CFLAGS += $(call cc-option, -m32) |
| 72 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ | 72 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ |
| 73 | GCOV_PROFILE := n | ||
| 73 | 74 | ||
| 74 | $(obj)/bzImage: asflags-y := $(SVGA_MODE) | 75 | $(obj)/bzImage: asflags-y := $(SVGA_MODE) |
| 75 | 76 | ||
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index 49c8a4c37d7..e2ff504b4dd 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile | |||
| @@ -15,6 +15,7 @@ KBUILD_CFLAGS += $(call cc-option,-ffreestanding) | |||
| 15 | KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) | 15 | KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) |
| 16 | 16 | ||
| 17 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ | 17 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ |
| 18 | GCOV_PROFILE := n | ||
| 18 | 19 | ||
| 19 | LDFLAGS := -m elf_$(UTS_MACHINE) | 20 | LDFLAGS := -m elf_$(UTS_MACHINE) |
| 20 | LDFLAGS_vmlinux := -T | 21 | LDFLAGS_vmlinux := -T |
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index f3477bb8456..6c327b852e2 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
| @@ -24,6 +24,8 @@ CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp) | |||
| 24 | CFLAGS_hpet.o := $(nostackp) | 24 | CFLAGS_hpet.o := $(nostackp) |
| 25 | CFLAGS_tsc.o := $(nostackp) | 25 | CFLAGS_tsc.o := $(nostackp) |
| 26 | CFLAGS_paravirt.o := $(nostackp) | 26 | CFLAGS_paravirt.o := $(nostackp) |
| 27 | GCOV_PROFILE_vsyscall_64.o := n | ||
| 28 | GCOV_PROFILE_hpet.o := n | ||
| 27 | 29 | ||
| 28 | obj-y := process_$(BITS).o signal.o entry_$(BITS).o | 30 | obj-y := process_$(BITS).o signal.o entry_$(BITS).o |
| 29 | obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o | 31 | obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o |
diff --git a/arch/x86/kernel/acpi/realmode/Makefile b/arch/x86/kernel/acpi/realmode/Makefile index 167bc16ce0e..6a564ac67ef 100644 --- a/arch/x86/kernel/acpi/realmode/Makefile +++ b/arch/x86/kernel/acpi/realmode/Makefile | |||
| @@ -42,6 +42,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D_WAKEUP -D__KERNEL__ \ | |||
| 42 | $(call cc-option, -mpreferred-stack-boundary=2) | 42 | $(call cc-option, -mpreferred-stack-boundary=2) |
| 43 | KBUILD_CFLAGS += $(call cc-option, -m32) | 43 | KBUILD_CFLAGS += $(call cc-option, -m32) |
| 44 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ | 44 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ |
| 45 | GCOV_PROFILE := n | ||
| 45 | 46 | ||
| 46 | WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y)) | 47 | WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y)) |
| 47 | 48 | ||
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile index 16a9020c8f1..88112b49f02 100644 --- a/arch/x86/vdso/Makefile +++ b/arch/x86/vdso/Makefile | |||
| @@ -123,6 +123,7 @@ quiet_cmd_vdso = VDSO $@ | |||
| 123 | -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) | 123 | -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) |
| 124 | 124 | ||
| 125 | VDSO_LDFLAGS = -fPIC -shared $(call ld-option, -Wl$(comma)--hash-style=sysv) | 125 | VDSO_LDFLAGS = -fPIC -shared $(call ld-option, -Wl$(comma)--hash-style=sysv) |
| 126 | GCOV_PROFILE := n | ||
| 126 | 127 | ||
| 127 | # | 128 | # |
| 128 | # Install the unstripped copy of vdso*.so listed in $(vdso-install-y). | 129 | # Install the unstripped copy of vdso*.so listed in $(vdso-install-y). |
diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig index aab593abfba..22e9dcfaa3d 100644 --- a/kernel/gcov/Kconfig +++ b/kernel/gcov/Kconfig | |||
| @@ -34,7 +34,7 @@ config GCOV_KERNEL | |||
| 34 | config GCOV_PROFILE_ALL | 34 | config GCOV_PROFILE_ALL |
| 35 | bool "Profile entire Kernel" | 35 | bool "Profile entire Kernel" |
| 36 | depends on GCOV_KERNEL | 36 | depends on GCOV_KERNEL |
| 37 | depends on S390 || X86_32 | 37 | depends on S390 || X86 |
| 38 | default n | 38 | default n |
| 39 | ---help--- | 39 | ---help--- |
| 40 | This options activates profiling for the entire kernel. | 40 | This options activates profiling for the entire kernel. |
