diff options
| -rw-r--r-- | arch/sparc/Kconfig | 7 | ||||
| -rw-r--r-- | arch/sparc/Makefile | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/time.c | 2 | ||||
| -rw-r--r-- | arch/sparc/oprofile/Kconfig | 17 | ||||
| -rw-r--r-- | arch/sparc/oprofile/Makefile | 9 | ||||
| -rw-r--r-- | arch/sparc/oprofile/init.c | 23 |
6 files changed, 60 insertions, 0 deletions
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 9431e967aa45..2f96610a83e9 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
| @@ -289,6 +289,13 @@ endmenu | |||
| 289 | 289 | ||
| 290 | source "fs/Kconfig" | 290 | source "fs/Kconfig" |
| 291 | 291 | ||
| 292 | menu "Instrumentation Support" | ||
| 293 | depends on EXPERIMENTAL | ||
| 294 | |||
| 295 | source "arch/sparc/oprofile/Kconfig" | ||
| 296 | |||
| 297 | endmenu | ||
| 298 | |||
| 292 | source "arch/sparc/Kconfig.debug" | 299 | source "arch/sparc/Kconfig.debug" |
| 293 | 300 | ||
| 294 | source "security/Kconfig" | 301 | source "security/Kconfig" |
diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile index 4cdbb2d59ed0..f33c3817f014 100644 --- a/arch/sparc/Makefile +++ b/arch/sparc/Makefile | |||
| @@ -30,6 +30,8 @@ HEAD_Y := $(head-y) | |||
| 30 | core-y += arch/sparc/kernel/ arch/sparc/mm/ arch/sparc/math-emu/ | 30 | core-y += arch/sparc/kernel/ arch/sparc/mm/ arch/sparc/math-emu/ |
| 31 | libs-y += arch/sparc/prom/ arch/sparc/lib/ | 31 | libs-y += arch/sparc/prom/ arch/sparc/lib/ |
| 32 | 32 | ||
| 33 | drivers-$(CONFIG_OPROFILE) += arch/sparc/oprofile/ | ||
| 34 | |||
| 33 | # Export what is needed by arch/sparc/boot/Makefile | 35 | # Export what is needed by arch/sparc/boot/Makefile |
| 34 | # Renaming is done to avoid confusing pattern matching rules in 2.5.45 (multy-) | 36 | # Renaming is done to avoid confusing pattern matching rules in 2.5.45 (multy-) |
| 35 | INIT_Y := $(patsubst %/, %/built-in.o, $(init-y)) | 37 | INIT_Y := $(patsubst %/, %/built-in.o, $(init-y)) |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index 7dcd1a16c6e4..6c7aa51b590f 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
| @@ -95,6 +95,8 @@ unsigned long profile_pc(struct pt_regs *regs) | |||
| 95 | return pc; | 95 | return pc; |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | EXPORT_SYMBOL(profile_pc); | ||
| 99 | |||
| 98 | __volatile__ unsigned int *master_l10_counter; | 100 | __volatile__ unsigned int *master_l10_counter; |
| 99 | __volatile__ unsigned int *master_l10_limit; | 101 | __volatile__ unsigned int *master_l10_limit; |
| 100 | 102 | ||
diff --git a/arch/sparc/oprofile/Kconfig b/arch/sparc/oprofile/Kconfig new file mode 100644 index 000000000000..d8a84088471a --- /dev/null +++ b/arch/sparc/oprofile/Kconfig | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | config PROFILING | ||
| 2 | bool "Profiling support (EXPERIMENTAL)" | ||
| 3 | help | ||
| 4 | Say Y here to enable the extended profiling support mechanisms used | ||
| 5 | by profilers such as OProfile. | ||
| 6 | |||
| 7 | |||
| 8 | config OPROFILE | ||
| 9 | tristate "OProfile system profiling (EXPERIMENTAL)" | ||
| 10 | depends on PROFILING | ||
| 11 | help | ||
| 12 | OProfile is a profiling system capable of profiling the | ||
| 13 | whole system, include the kernel, kernel modules, libraries, | ||
| 14 | and applications. | ||
| 15 | |||
| 16 | If unsure, say N. | ||
| 17 | |||
diff --git a/arch/sparc/oprofile/Makefile b/arch/sparc/oprofile/Makefile new file mode 100644 index 000000000000..e9feca1ca28b --- /dev/null +++ b/arch/sparc/oprofile/Makefile | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | obj-$(CONFIG_OPROFILE) += oprofile.o | ||
| 2 | |||
| 3 | DRIVER_OBJS = $(addprefix ../../../drivers/oprofile/, \ | ||
| 4 | oprof.o cpu_buffer.o buffer_sync.o \ | ||
| 5 | event_buffer.o oprofile_files.o \ | ||
| 6 | oprofilefs.o oprofile_stats.o \ | ||
| 7 | timer_int.o ) | ||
| 8 | |||
| 9 | oprofile-y := $(DRIVER_OBJS) init.o | ||
diff --git a/arch/sparc/oprofile/init.c b/arch/sparc/oprofile/init.c new file mode 100644 index 000000000000..9ab815b95b5a --- /dev/null +++ b/arch/sparc/oprofile/init.c | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | /** | ||
| 2 | * @file init.c | ||
| 3 | * | ||
| 4 | * @remark Copyright 2002 OProfile authors | ||
| 5 | * @remark Read the file COPYING | ||
| 6 | * | ||
| 7 | * @author John Levon <levon@movementarian.org> | ||
| 8 | */ | ||
| 9 | |||
| 10 | #include <linux/kernel.h> | ||
| 11 | #include <linux/oprofile.h> | ||
| 12 | #include <linux/errno.h> | ||
| 13 | #include <linux/init.h> | ||
| 14 | |||
| 15 | int __init oprofile_arch_init(struct oprofile_operations * ops) | ||
| 16 | { | ||
| 17 | return -ENODEV; | ||
| 18 | } | ||
| 19 | |||
| 20 | |||
| 21 | void oprofile_arch_exit(void) | ||
| 22 | { | ||
| 23 | } | ||
