#include <asm/pmc.h>
#include <asm/cputable.h>
#include <asm/oprofile_impl.h>
-#include <asm/firmware.h>
static struct op_powerpc_model *model;
for (i = 0; i < model->num_counters; ++i) {
struct dentry *dir;
- char buf[4];
+ char buf[3];
snprintf(buf, sizeof buf, "%d", i);
dir = oprofilefs_mkdir(sb, root, buf);
oprofilefs_create_ulong(sb, root, "enable_kernel", &sys.enable_kernel);
oprofilefs_create_ulong(sb, root, "enable_user", &sys.enable_user);
+#ifdef CONFIG_PPC64
+ oprofilefs_create_ulong(sb, root, "backtrace_spinlocks",
+ &sys.backtrace_spinlocks);
+#endif
/* Default to tracing both kernel and user */
sys.enable_kernel = 1;
sys.enable_user = 1;
+#ifdef CONFIG_PPC64
+ /* Turn on backtracing through spinlocks by default */
+ sys.backtrace_spinlocks = 1;
+#endif
return 0;
}
if (!cur_cpu_spec->oprofile_cpu_type)
return -ENODEV;
- if (firmware_has_feature(FW_FEATURE_ISERIES))
- return -ENODEV;
-
switch (cur_cpu_spec->oprofile_type) {
#ifdef CONFIG_PPC64
case PPC_OPROFILE_RS64:
ops->shutdown = op_powerpc_shutdown;
ops->start = op_powerpc_start;
ops->stop = op_powerpc_stop;
- ops->backtrace = op_powerpc_backtrace;
- printk(KERN_DEBUG "oprofile: using %s performance monitoring.\n",
+ printk(KERN_INFO "oprofile: using %s performance monitoring.\n",
ops->cpu_type);
return 0;