From a6908cd00036080fbea14ff67335e5f2a1ab5489 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Tue, 6 Sep 2005 14:52:12 +1000 Subject: [PATCH] ppc64: Use num_pmcs in oprofile code Change oprofile to use num_pmcs from the cpu feature struct. Signed-off-by: Anton Blanchard Signed-off-by: Paul Mackerras --- arch/ppc64/oprofile/common.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'arch/ppc64/oprofile/common.c') diff --git a/arch/ppc64/oprofile/common.c b/arch/ppc64/oprofile/common.c index 4acd1a42493..a376eb2a1f0 100644 --- a/arch/ppc64/oprofile/common.c +++ b/arch/ppc64/oprofile/common.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "op_impl.h" @@ -131,7 +132,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) case PV_630: case PV_630p: model = &op_model_rs64; - model->num_counters = 8; ops->cpu_type = "ppc64/power3"; break; @@ -140,14 +140,12 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) case PV_ICESTAR: case PV_SSTAR: model = &op_model_rs64; - model->num_counters = 8; ops->cpu_type = "ppc64/rs64"; break; case PV_POWER4: case PV_POWER4p: model = &op_model_power4; - model->num_counters = 8; ops->cpu_type = "ppc64/power4"; break; @@ -155,14 +153,12 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) case PV_970FX: case PV_970MP: model = &op_model_power4; - model->num_counters = 8; ops->cpu_type = "ppc64/970"; break; case PV_POWER5: case PV_POWER5p: model = &op_model_power4; - model->num_counters = 6; ops->cpu_type = "ppc64/power5"; break; @@ -170,6 +166,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return -ENODEV; } + model->num_counters = cur_cpu_spec->num_pmcs; ops->create_files = op_ppc64_create_files; ops->setup = op_ppc64_setup; ops->shutdown = op_ppc64_shutdown; -- cgit From 1a410d883023da70806a0190c4bde104545cb9c6 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Tue, 6 Sep 2005 14:53:57 +1000 Subject: [PATCH] ppc64: Add oprofile cpu_type to cpu feature struct Add oprofile cpu_type to cpu feature struct. Signed-off-by: Anton Blanchard Signed-off-by: Paul Mackerras --- arch/ppc64/oprofile/common.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'arch/ppc64/oprofile/common.c') diff --git a/arch/ppc64/oprofile/common.c b/arch/ppc64/oprofile/common.c index a376eb2a1f0..0260122a8d6 100644 --- a/arch/ppc64/oprofile/common.c +++ b/arch/ppc64/oprofile/common.c @@ -132,7 +132,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) case PV_630: case PV_630p: model = &op_model_rs64; - ops->cpu_type = "ppc64/power3"; break; case PV_NORTHSTAR: @@ -140,32 +139,29 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) case PV_ICESTAR: case PV_SSTAR: model = &op_model_rs64; - ops->cpu_type = "ppc64/rs64"; break; case PV_POWER4: case PV_POWER4p: model = &op_model_power4; - ops->cpu_type = "ppc64/power4"; break; case PV_970: case PV_970FX: case PV_970MP: model = &op_model_power4; - ops->cpu_type = "ppc64/970"; break; case PV_POWER5: case PV_POWER5p: model = &op_model_power4; - ops->cpu_type = "ppc64/power5"; break; default: return -ENODEV; } + ops->cpu_type = cur_cpu_spec->oprofile_cpu_type; model->num_counters = cur_cpu_spec->num_pmcs; ops->create_files = op_ppc64_create_files; ops->setup = op_ppc64_setup; -- cgit From dca859329cee9b4cf02c8b7cb805b49973292ed2 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Tue, 6 Sep 2005 14:55:35 +1000 Subject: [PATCH] ppc64: Move oprofile_impl.h into include/asm-ppc64 Move oprofile_impl.h into include/asm-ppc64 in preparation for moving oprofile_model into cpu feature struct. Signed-off-by: Anton Blanchard Signed-off-by: Paul Mackerras --- arch/ppc64/oprofile/common.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'arch/ppc64/oprofile/common.c') diff --git a/arch/ppc64/oprofile/common.c b/arch/ppc64/oprofile/common.c index 0260122a8d6..3e8daabf102 100644 --- a/arch/ppc64/oprofile/common.c +++ b/arch/ppc64/oprofile/common.c @@ -17,11 +17,8 @@ #include #include #include +#include -#include "op_impl.h" - -extern struct op_ppc64_model op_model_rs64; -extern struct op_ppc64_model op_model_power4; static struct op_ppc64_model *model; static struct op_counter_config ctr[OP_MAX_COUNTER]; -- cgit From 8fef0306f9164d4bfd0befb62e63e4d1167681b5 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Tue, 6 Sep 2005 14:57:52 +1000 Subject: [PATCH] ppc64: Move oprofile_model into cpu feature struct Move oprofile_model into cpu feature struct. Signed-off-by: Anton Blanchard Signed-off-by: Paul Mackerras --- arch/ppc64/oprofile/common.c | 42 +++++------------------------------------- 1 file changed, 5 insertions(+), 37 deletions(-) (limited to 'arch/ppc64/oprofile/common.c') diff --git a/arch/ppc64/oprofile/common.c b/arch/ppc64/oprofile/common.c index 3e8daabf102..e5f572710aa 100644 --- a/arch/ppc64/oprofile/common.c +++ b/arch/ppc64/oprofile/common.c @@ -121,45 +121,13 @@ static int op_ppc64_create_files(struct super_block *sb, struct dentry *root) int __init oprofile_arch_init(struct oprofile_operations *ops) { - unsigned int pvr; - - pvr = mfspr(SPRN_PVR); - - switch (PVR_VER(pvr)) { - case PV_630: - case PV_630p: - model = &op_model_rs64; - break; - - case PV_NORTHSTAR: - case PV_PULSAR: - case PV_ICESTAR: - case PV_SSTAR: - model = &op_model_rs64; - break; - - case PV_POWER4: - case PV_POWER4p: - model = &op_model_power4; - break; - - case PV_970: - case PV_970FX: - case PV_970MP: - model = &op_model_power4; - break; - - case PV_POWER5: - case PV_POWER5p: - model = &op_model_power4; - break; - - default: - return -ENODEV; - } + if (!cur_cpu_spec->oprofile_model || !cur_cpu_spec->oprofile_cpu_type) + return -ENODEV; - ops->cpu_type = cur_cpu_spec->oprofile_cpu_type; + model = cur_cpu_spec->oprofile_model; model->num_counters = cur_cpu_spec->num_pmcs; + + ops->cpu_type = cur_cpu_spec->oprofile_cpu_type; ops->create_files = op_ppc64_create_files; ops->setup = op_ppc64_setup; ops->shutdown = op_ppc64_shutdown; -- cgit