summaryrefslogtreecommitdiffstats
path: root/arch/mips/oprofile/common.c
diff options
context:
space:
mode:
authorWu Zhangjin <wuzj@lemote.com>2009-07-02 23:25:46 +0800
committerRalf Baechle <ralf@linux-mips.org>2009-09-17 20:07:47 +0200
commit67b35e5d01aba7a83f2161b0c90acb08afa01e3e (patch)
treeb85665bc0611c07d26299c20424332cc8899133d /arch/mips/oprofile/common.c
parent92d1b63dbae0865bee5317ca6b65e0b304dc590d (diff)
downloadlinux-67b35e5d01aba7a83f2161b0c90acb08afa01e3e.tar.gz
linux-67b35e5d01aba7a83f2161b0c90acb08afa01e3e.tar.bz2
linux-67b35e5d01aba7a83f2161b0c90acb08afa01e3e.zip
MIPS: Loongson: Add oprofile support
This kernel support is needed by the user-space tool:oprofile to profile linux kernel or applications via loongson2 performance counters. you can enable this driver via CONFIG_OPROFILE = y or m. On Loongson2 there are two performance counters, each one can count 16 events respectively. when anyone of the performance counter overflows, an interrupt will be generated and is routed to the IRQ MIPS_CPU_IRQ_BASE + 6. Signed-off-by: Yanhua <yanh@lemote.com> Signed-off-by: Wu Zhangjin <wuzj@lemote.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/oprofile/common.c')
-rw-r--r--arch/mips/oprofile/common.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c
index 3bf3354547f6..7832ad257a14 100644
--- a/arch/mips/oprofile/common.c
+++ b/arch/mips/oprofile/common.c
@@ -16,6 +16,7 @@
extern struct op_mips_model op_model_mipsxx_ops __attribute__((weak));
extern struct op_mips_model op_model_rm9000_ops __attribute__((weak));
+extern struct op_mips_model op_model_loongson2_ops __attribute__((weak));
static struct op_mips_model *model;
@@ -93,6 +94,9 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
case CPU_RM9000:
lmodel = &op_model_rm9000_ops;
break;
+ case CPU_LOONGSON2:
+ lmodel = &op_model_loongson2_ops;
+ break;
};
if (!lmodel)