microblaze: Core oprofile configs and hooks
authorJohn Williams <john.williams@petalogix.com>
Tue, 24 Nov 2009 10:27:54 +0000 (20:27 +1000)
committerMichal Simek <monstr@monstr.eu>
Mon, 14 Dec 2009 07:45:07 +0000 (08:45 +0100)
Microblaze uses timer interrupt mode. Microblaze don't have
any performance counter that's why we use just simple implementation.

Signed-off-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/Kconfig
arch/microblaze/Makefile
arch/microblaze/oprofile/Makefile [new file with mode: 0644]
arch/microblaze/oprofile/microblaze_oprofile.c [new file with mode: 0644]

index e297802..165cf06 100644 (file)
@@ -13,6 +13,8 @@ config MICROBLAZE
        select HAVE_FTRACE_MCOUNT_RECORD
        select USB_ARCH_HAS_EHCI
        select ARCH_WANT_OPTIONAL_GPIOLIB
+       select HAVE_OPROFILE
+       select TRACING_SUPPORT
 
 config SWAP
        def_bool n
index 3418735..d2d6cfc 100644 (file)
@@ -51,6 +51,8 @@ core-y += arch/microblaze/kernel/
 core-y += arch/microblaze/mm/
 core-y += arch/microblaze/platform/
 
+drivers-$(CONFIG_OPROFILE) += arch/microblaze/oprofile/
+
 boot := arch/microblaze/boot
 
 # Are we making a simpleImage.<boardname> target? If so, crack out the boardname
diff --git a/arch/microblaze/oprofile/Makefile b/arch/microblaze/oprofile/Makefile
new file mode 100644 (file)
index 0000000..0d0348c
--- /dev/null
@@ -0,0 +1,13 @@
+#
+# arch/microblaze/oprofile/Makefile
+#
+
+obj-$(CONFIG_OPROFILE) += oprofile.o
+
+DRIVER_OBJS := $(addprefix ../../../drivers/oprofile/, \
+               oprof.o cpu_buffer.o buffer_sync.o \
+               event_buffer.o oprofile_files.o \
+               oprofilefs.o oprofile_stats.o \
+               timer_int.o )
+
+oprofile-y := $(DRIVER_OBJS) microblaze_oprofile.o
diff --git a/arch/microblaze/oprofile/microblaze_oprofile.c b/arch/microblaze/oprofile/microblaze_oprofile.c
new file mode 100644 (file)
index 0000000..def17e5
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Microblaze oprofile code
+ *
+ * Copyright (C) 2009 Michal Simek <monstr@monstr.eu>
+ * Copyright (C) 2009 PetaLogix
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#include <linux/oprofile.h>
+#include <linux/init.h>
+
+int __init oprofile_arch_init(struct oprofile_operations *ops)
+{
+       return -1;
+}
+
+void oprofile_arch_exit(void)
+{
+}