oprofile: don't bother with passing superblock to ->create_files()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
a9e599e558
commit
ef7bca1456
10 changed files with 90 additions and 92 deletions
|
@ -106,7 +106,7 @@ op_axp_stop(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
op_axp_create_files(struct super_block *sb, struct dentry *root)
|
op_axp_create_files(struct dentry *root)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -115,23 +115,23 @@ op_axp_create_files(struct super_block *sb, struct dentry *root)
|
||||||
char buf[4];
|
char buf[4];
|
||||||
|
|
||||||
snprintf(buf, sizeof buf, "%d", i);
|
snprintf(buf, sizeof buf, "%d", i);
|
||||||
dir = oprofilefs_mkdir(sb, root, buf);
|
dir = oprofilefs_mkdir(root->d_sb, root, buf);
|
||||||
|
|
||||||
oprofilefs_create_ulong(sb, dir, "enabled", &ctr[i].enabled);
|
oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "event", &ctr[i].event);
|
oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
|
||||||
oprofilefs_create_ulong(sb, dir, "count", &ctr[i].count);
|
oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count);
|
||||||
/* Dummies. */
|
/* Dummies. */
|
||||||
oprofilefs_create_ulong(sb, dir, "kernel", &ctr[i].kernel);
|
oprofilefs_create_ulong(root->d_sb, dir, "kernel", &ctr[i].kernel);
|
||||||
oprofilefs_create_ulong(sb, dir, "user", &ctr[i].user);
|
oprofilefs_create_ulong(root->d_sb, dir, "user", &ctr[i].user);
|
||||||
oprofilefs_create_ulong(sb, dir, "unit_mask", &ctr[i].unit_mask);
|
oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model->can_set_proc_mode) {
|
if (model->can_set_proc_mode) {
|
||||||
oprofilefs_create_ulong(sb, root, "enable_pal",
|
oprofilefs_create_ulong(root->d_sb, root, "enable_pal",
|
||||||
&sys.enable_pal);
|
&sys.enable_pal);
|
||||||
oprofilefs_create_ulong(sb, root, "enable_kernel",
|
oprofilefs_create_ulong(root->d_sb, root, "enable_kernel",
|
||||||
&sys.enable_kernel);
|
&sys.enable_kernel);
|
||||||
oprofilefs_create_ulong(sb, root, "enable_user",
|
oprofilefs_create_ulong(root->d_sb, root, "enable_user",
|
||||||
&sys.enable_user);
|
&sys.enable_user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,8 +97,7 @@ static irqreturn_t avr32_perf_counter_interrupt(int irq, void *dev_id)
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int avr32_perf_counter_create_files(struct super_block *sb,
|
static int avr32_perf_counter_create_files(struct dentry *root)
|
||||||
struct dentry *root)
|
|
||||||
{
|
{
|
||||||
struct dentry *dir;
|
struct dentry *dir;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -106,21 +105,21 @@ static int avr32_perf_counter_create_files(struct super_block *sb,
|
||||||
|
|
||||||
for (i = 0; i < NR_counter; i++) {
|
for (i = 0; i < NR_counter; i++) {
|
||||||
snprintf(filename, sizeof(filename), "%u", i);
|
snprintf(filename, sizeof(filename), "%u", i);
|
||||||
dir = oprofilefs_mkdir(sb, root, filename);
|
dir = oprofilefs_mkdir(root->d_sb, root, filename);
|
||||||
|
|
||||||
oprofilefs_create_ulong(sb, dir, "enabled",
|
oprofilefs_create_ulong(root->d_sb, dir, "enabled",
|
||||||
&counter[i].enabled);
|
&counter[i].enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "event",
|
oprofilefs_create_ulong(root->d_sb, dir, "event",
|
||||||
&counter[i].event);
|
&counter[i].event);
|
||||||
oprofilefs_create_ulong(sb, dir, "count",
|
oprofilefs_create_ulong(root->d_sb, dir, "count",
|
||||||
&counter[i].count);
|
&counter[i].count);
|
||||||
|
|
||||||
/* Dummy entries */
|
/* Dummy entries */
|
||||||
oprofilefs_create_ulong(sb, dir, "kernel",
|
oprofilefs_create_ulong(root->d_sb, dir, "kernel",
|
||||||
&counter[i].kernel);
|
&counter[i].kernel);
|
||||||
oprofilefs_create_ulong(sb, dir, "user",
|
oprofilefs_create_ulong(root->d_sb, dir, "user",
|
||||||
&counter[i].user);
|
&counter[i].user);
|
||||||
oprofilefs_create_ulong(sb, dir, "unit_mask",
|
oprofilefs_create_ulong(root->d_sb, dir, "unit_mask",
|
||||||
&counter[i].unit_mask);
|
&counter[i].unit_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ static int op_mips_setup(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int op_mips_create_files(struct super_block *sb, struct dentry *root)
|
static int op_mips_create_files(struct dentry *root)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -42,16 +42,16 @@ static int op_mips_create_files(struct super_block *sb, struct dentry *root)
|
||||||
char buf[4];
|
char buf[4];
|
||||||
|
|
||||||
snprintf(buf, sizeof buf, "%d", i);
|
snprintf(buf, sizeof buf, "%d", i);
|
||||||
dir = oprofilefs_mkdir(sb, root, buf);
|
dir = oprofilefs_mkdir(root->d_sb, root, buf);
|
||||||
|
|
||||||
oprofilefs_create_ulong(sb, dir, "enabled", &ctr[i].enabled);
|
oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "event", &ctr[i].event);
|
oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
|
||||||
oprofilefs_create_ulong(sb, dir, "count", &ctr[i].count);
|
oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count);
|
||||||
oprofilefs_create_ulong(sb, dir, "kernel", &ctr[i].kernel);
|
oprofilefs_create_ulong(root->d_sb, dir, "kernel", &ctr[i].kernel);
|
||||||
oprofilefs_create_ulong(sb, dir, "user", &ctr[i].user);
|
oprofilefs_create_ulong(root->d_sb, dir, "user", &ctr[i].user);
|
||||||
oprofilefs_create_ulong(sb, dir, "exl", &ctr[i].exl);
|
oprofilefs_create_ulong(root->d_sb, dir, "exl", &ctr[i].exl);
|
||||||
/* Dummy. */
|
/* Dummy. */
|
||||||
oprofilefs_create_ulong(sb, dir, "unit_mask", &ctr[i].unit_mask);
|
oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -119,7 +119,7 @@ static void op_powerpc_stop(void)
|
||||||
model->global_stop();
|
model->global_stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
|
static int op_powerpc_create_files(struct dentry *root)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -128,9 +128,9 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
|
||||||
* There is one mmcr0, mmcr1 and mmcra for setting the events for
|
* There is one mmcr0, mmcr1 and mmcra for setting the events for
|
||||||
* all of the counters.
|
* all of the counters.
|
||||||
*/
|
*/
|
||||||
oprofilefs_create_ulong(sb, root, "mmcr0", &sys.mmcr0);
|
oprofilefs_create_ulong(root->d_sb, root, "mmcr0", &sys.mmcr0);
|
||||||
oprofilefs_create_ulong(sb, root, "mmcr1", &sys.mmcr1);
|
oprofilefs_create_ulong(root->d_sb, root, "mmcr1", &sys.mmcr1);
|
||||||
oprofilefs_create_ulong(sb, root, "mmcra", &sys.mmcra);
|
oprofilefs_create_ulong(root->d_sb, root, "mmcra", &sys.mmcra);
|
||||||
#ifdef CONFIG_OPROFILE_CELL
|
#ifdef CONFIG_OPROFILE_CELL
|
||||||
/* create a file the user tool can check to see what level of profiling
|
/* create a file the user tool can check to see what level of profiling
|
||||||
* support exits with this kernel. Initialize bit mask to indicate
|
* support exits with this kernel. Initialize bit mask to indicate
|
||||||
|
@ -142,7 +142,7 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
|
||||||
* If the file does not exist, then the kernel only supports SPU
|
* If the file does not exist, then the kernel only supports SPU
|
||||||
* cycle profiling, PPU event and cycle profiling.
|
* cycle profiling, PPU event and cycle profiling.
|
||||||
*/
|
*/
|
||||||
oprofilefs_create_ulong(sb, root, "cell_support", &sys.cell_support);
|
oprofilefs_create_ulong(root->d_sb, root, "cell_support", &sys.cell_support);
|
||||||
sys.cell_support = 0x1; /* Note, the user OProfile tool must check
|
sys.cell_support = 0x1; /* Note, the user OProfile tool must check
|
||||||
* that this bit is set before attempting to
|
* that this bit is set before attempting to
|
||||||
* user SPU event profiling. Older kernels
|
* user SPU event profiling. Older kernels
|
||||||
|
@ -160,11 +160,11 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
|
||||||
char buf[4];
|
char buf[4];
|
||||||
|
|
||||||
snprintf(buf, sizeof buf, "%d", i);
|
snprintf(buf, sizeof buf, "%d", i);
|
||||||
dir = oprofilefs_mkdir(sb, root, buf);
|
dir = oprofilefs_mkdir(root->d_sb, root, buf);
|
||||||
|
|
||||||
oprofilefs_create_ulong(sb, dir, "enabled", &ctr[i].enabled);
|
oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "event", &ctr[i].event);
|
oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
|
||||||
oprofilefs_create_ulong(sb, dir, "count", &ctr[i].count);
|
oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Classic PowerPC doesn't support per-counter
|
* Classic PowerPC doesn't support per-counter
|
||||||
|
@ -173,14 +173,14 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
|
||||||
* Book-E style performance monitors, we do
|
* Book-E style performance monitors, we do
|
||||||
* support them.
|
* support them.
|
||||||
*/
|
*/
|
||||||
oprofilefs_create_ulong(sb, dir, "kernel", &ctr[i].kernel);
|
oprofilefs_create_ulong(root->d_sb, dir, "kernel", &ctr[i].kernel);
|
||||||
oprofilefs_create_ulong(sb, dir, "user", &ctr[i].user);
|
oprofilefs_create_ulong(root->d_sb, dir, "user", &ctr[i].user);
|
||||||
|
|
||||||
oprofilefs_create_ulong(sb, dir, "unit_mask", &ctr[i].unit_mask);
|
oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
oprofilefs_create_ulong(sb, root, "enable_kernel", &sys.enable_kernel);
|
oprofilefs_create_ulong(root->d_sb, root, "enable_kernel", &sys.enable_kernel);
|
||||||
oprofilefs_create_ulong(sb, root, "enable_user", &sys.enable_user);
|
oprofilefs_create_ulong(root->d_sb, root, "enable_user", &sys.enable_user);
|
||||||
|
|
||||||
/* Default to tracing both kernel and user */
|
/* Default to tracing both kernel and user */
|
||||||
sys.enable_kernel = 1;
|
sys.enable_kernel = 1;
|
||||||
|
|
|
@ -346,16 +346,15 @@ static const struct file_operations timer_enabled_fops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static int oprofile_create_hwsampling_files(struct super_block *sb,
|
static int oprofile_create_hwsampling_files(struct dentry *root)
|
||||||
struct dentry *root)
|
|
||||||
{
|
{
|
||||||
struct dentry *dir;
|
struct dentry *dir;
|
||||||
|
|
||||||
dir = oprofilefs_mkdir(sb, root, "timer");
|
dir = oprofilefs_mkdir(root->d_sb, root, "timer");
|
||||||
if (!dir)
|
if (!dir)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
oprofilefs_create_file(sb, dir, "enabled", &timer_enabled_fops);
|
oprofilefs_create_file(root->d_sb, dir, "enabled", &timer_enabled_fops);
|
||||||
|
|
||||||
if (!hwsampler_available)
|
if (!hwsampler_available)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -376,17 +375,17 @@ static int oprofile_create_hwsampling_files(struct super_block *sb,
|
||||||
* and can only be set to 0.
|
* and can only be set to 0.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dir = oprofilefs_mkdir(sb, root, "0");
|
dir = oprofilefs_mkdir(root->d_sb, root, "0");
|
||||||
if (!dir)
|
if (!dir)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
oprofilefs_create_file(sb, dir, "enabled", &hwsampler_fops);
|
oprofilefs_create_file(root->d_sb, dir, "enabled", &hwsampler_fops);
|
||||||
oprofilefs_create_file(sb, dir, "event", &zero_fops);
|
oprofilefs_create_file(root->d_sb, dir, "event", &zero_fops);
|
||||||
oprofilefs_create_file(sb, dir, "count", &hw_interval_fops);
|
oprofilefs_create_file(root->d_sb, dir, "count", &hw_interval_fops);
|
||||||
oprofilefs_create_file(sb, dir, "unit_mask", &zero_fops);
|
oprofilefs_create_file(root->d_sb, dir, "unit_mask", &zero_fops);
|
||||||
oprofilefs_create_file(sb, dir, "kernel", &kernel_fops);
|
oprofilefs_create_file(root->d_sb, dir, "kernel", &kernel_fops);
|
||||||
oprofilefs_create_file(sb, dir, "user", &user_fops);
|
oprofilefs_create_file(root->d_sb, dir, "user", &user_fops);
|
||||||
oprofilefs_create_ulong(sb, dir, "hw_sdbt_blocks",
|
oprofilefs_create_ulong(root->d_sb, dir, "hw_sdbt_blocks",
|
||||||
&oprofile_sdbt_blocks);
|
&oprofile_sdbt_blocks);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -396,19 +395,19 @@ static int oprofile_create_hwsampling_files(struct super_block *sb,
|
||||||
* space tools. The /dev/oprofile/hwsampling fs is
|
* space tools. The /dev/oprofile/hwsampling fs is
|
||||||
* provided in that case.
|
* provided in that case.
|
||||||
*/
|
*/
|
||||||
dir = oprofilefs_mkdir(sb, root, "hwsampling");
|
dir = oprofilefs_mkdir(root->d_sb, root, "hwsampling");
|
||||||
if (!dir)
|
if (!dir)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
oprofilefs_create_file(sb, dir, "hwsampler",
|
oprofilefs_create_file(root->d_sb, dir, "hwsampler",
|
||||||
&hwsampler_fops);
|
&hwsampler_fops);
|
||||||
oprofilefs_create_file(sb, dir, "hw_interval",
|
oprofilefs_create_file(root->d_sb, dir, "hw_interval",
|
||||||
&hw_interval_fops);
|
&hw_interval_fops);
|
||||||
oprofilefs_create_ro_ulong(sb, dir, "hw_min_interval",
|
oprofilefs_create_ro_ulong(root->d_sb, dir, "hw_min_interval",
|
||||||
&oprofile_min_interval);
|
&oprofile_min_interval);
|
||||||
oprofilefs_create_ro_ulong(sb, dir, "hw_max_interval",
|
oprofilefs_create_ro_ulong(root->d_sb, dir, "hw_max_interval",
|
||||||
&oprofile_max_interval);
|
&oprofile_max_interval);
|
||||||
oprofilefs_create_ulong(sb, dir, "hw_sdbt_blocks",
|
oprofilefs_create_ulong(root->d_sb, dir, "hw_sdbt_blocks",
|
||||||
&oprofile_sdbt_blocks);
|
&oprofile_sdbt_blocks);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -403,7 +403,7 @@ static void nmi_cpu_down(void *dummy)
|
||||||
nmi_cpu_shutdown(dummy);
|
nmi_cpu_shutdown(dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nmi_create_files(struct super_block *sb, struct dentry *root)
|
static int nmi_create_files(struct dentry *root)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
@ -420,14 +420,14 @@ static int nmi_create_files(struct super_block *sb, struct dentry *root)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%d", i);
|
snprintf(buf, sizeof(buf), "%d", i);
|
||||||
dir = oprofilefs_mkdir(sb, root, buf);
|
dir = oprofilefs_mkdir(root->d_sb, root, buf);
|
||||||
oprofilefs_create_ulong(sb, dir, "enabled", &counter_config[i].enabled);
|
oprofilefs_create_ulong(root->d_sb, dir, "enabled", &counter_config[i].enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "event", &counter_config[i].event);
|
oprofilefs_create_ulong(root->d_sb, dir, "event", &counter_config[i].event);
|
||||||
oprofilefs_create_ulong(sb, dir, "count", &counter_config[i].count);
|
oprofilefs_create_ulong(root->d_sb, dir, "count", &counter_config[i].count);
|
||||||
oprofilefs_create_ulong(sb, dir, "unit_mask", &counter_config[i].unit_mask);
|
oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &counter_config[i].unit_mask);
|
||||||
oprofilefs_create_ulong(sb, dir, "kernel", &counter_config[i].kernel);
|
oprofilefs_create_ulong(root->d_sb, dir, "kernel", &counter_config[i].kernel);
|
||||||
oprofilefs_create_ulong(sb, dir, "user", &counter_config[i].user);
|
oprofilefs_create_ulong(root->d_sb, dir, "user", &counter_config[i].user);
|
||||||
oprofilefs_create_ulong(sb, dir, "extra", &counter_config[i].extra);
|
oprofilefs_create_ulong(root->d_sb, dir, "extra", &counter_config[i].extra);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -454,16 +454,16 @@ static void init_ibs(void)
|
||||||
printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps);
|
printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int (*create_arch_files)(struct super_block *sb, struct dentry *root);
|
static int (*create_arch_files)(struct dentry *root);
|
||||||
|
|
||||||
static int setup_ibs_files(struct super_block *sb, struct dentry *root)
|
static int setup_ibs_files(struct dentry *root)
|
||||||
{
|
{
|
||||||
struct dentry *dir;
|
struct dentry *dir;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/* architecture specific files */
|
/* architecture specific files */
|
||||||
if (create_arch_files)
|
if (create_arch_files)
|
||||||
ret = create_arch_files(sb, root);
|
ret = create_arch_files(root);
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -479,26 +479,26 @@ static int setup_ibs_files(struct super_block *sb, struct dentry *root)
|
||||||
ibs_config.max_cnt_op = 250000;
|
ibs_config.max_cnt_op = 250000;
|
||||||
|
|
||||||
if (ibs_caps & IBS_CAPS_FETCHSAM) {
|
if (ibs_caps & IBS_CAPS_FETCHSAM) {
|
||||||
dir = oprofilefs_mkdir(sb, root, "ibs_fetch");
|
dir = oprofilefs_mkdir(root->d_sb, root, "ibs_fetch");
|
||||||
oprofilefs_create_ulong(sb, dir, "enable",
|
oprofilefs_create_ulong(root->d_sb, dir, "enable",
|
||||||
&ibs_config.fetch_enabled);
|
&ibs_config.fetch_enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "max_count",
|
oprofilefs_create_ulong(root->d_sb, dir, "max_count",
|
||||||
&ibs_config.max_cnt_fetch);
|
&ibs_config.max_cnt_fetch);
|
||||||
oprofilefs_create_ulong(sb, dir, "rand_enable",
|
oprofilefs_create_ulong(root->d_sb, dir, "rand_enable",
|
||||||
&ibs_config.rand_en);
|
&ibs_config.rand_en);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ibs_caps & IBS_CAPS_OPSAM) {
|
if (ibs_caps & IBS_CAPS_OPSAM) {
|
||||||
dir = oprofilefs_mkdir(sb, root, "ibs_op");
|
dir = oprofilefs_mkdir(root->d_sb, root, "ibs_op");
|
||||||
oprofilefs_create_ulong(sb, dir, "enable",
|
oprofilefs_create_ulong(root->d_sb, dir, "enable",
|
||||||
&ibs_config.op_enabled);
|
&ibs_config.op_enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "max_count",
|
oprofilefs_create_ulong(root->d_sb, dir, "max_count",
|
||||||
&ibs_config.max_cnt_op);
|
&ibs_config.max_cnt_op);
|
||||||
if (ibs_caps & IBS_CAPS_OPCNT)
|
if (ibs_caps & IBS_CAPS_OPCNT)
|
||||||
oprofilefs_create_ulong(sb, dir, "dispatched_ops",
|
oprofilefs_create_ulong(root->d_sb, dir, "dispatched_ops",
|
||||||
&ibs_config.dispatched_ops);
|
&ibs_config.dispatched_ops);
|
||||||
if (ibs_caps & IBS_CAPS_BRNTRGT)
|
if (ibs_caps & IBS_CAPS_BRNTRGT)
|
||||||
oprofilefs_create_ulong(sb, dir, "branch_target",
|
oprofilefs_create_ulong(root->d_sb, dir, "branch_target",
|
||||||
&ibs_config.branch_target);
|
&ibs_config.branch_target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -197,5 +197,5 @@ void oprofile_create_files(struct dentry *root)
|
||||||
#endif
|
#endif
|
||||||
oprofile_create_stats_files(root->d_sb, root);
|
oprofile_create_stats_files(root->d_sb, root);
|
||||||
if (oprofile_ops.create_files)
|
if (oprofile_ops.create_files)
|
||||||
oprofile_ops.create_files(root->d_sb, root);
|
oprofile_ops.create_files(root);
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ static void op_perf_stop(void)
|
||||||
op_destroy_counter(cpu, event);
|
op_destroy_counter(cpu, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int oprofile_perf_create_files(struct super_block *sb, struct dentry *root)
|
static int oprofile_perf_create_files(struct dentry *root)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
@ -147,13 +147,13 @@ static int oprofile_perf_create_files(struct super_block *sb, struct dentry *roo
|
||||||
char buf[4];
|
char buf[4];
|
||||||
|
|
||||||
snprintf(buf, sizeof buf, "%d", i);
|
snprintf(buf, sizeof buf, "%d", i);
|
||||||
dir = oprofilefs_mkdir(sb, root, buf);
|
dir = oprofilefs_mkdir(root->d_sb, root, buf);
|
||||||
oprofilefs_create_ulong(sb, dir, "enabled", &counter_config[i].enabled);
|
oprofilefs_create_ulong(root->d_sb, dir, "enabled", &counter_config[i].enabled);
|
||||||
oprofilefs_create_ulong(sb, dir, "event", &counter_config[i].event);
|
oprofilefs_create_ulong(root->d_sb, dir, "event", &counter_config[i].event);
|
||||||
oprofilefs_create_ulong(sb, dir, "count", &counter_config[i].count);
|
oprofilefs_create_ulong(root->d_sb, dir, "count", &counter_config[i].count);
|
||||||
oprofilefs_create_ulong(sb, dir, "unit_mask", &counter_config[i].unit_mask);
|
oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &counter_config[i].unit_mask);
|
||||||
oprofilefs_create_ulong(sb, dir, "kernel", &counter_config[i].kernel);
|
oprofilefs_create_ulong(root->d_sb, dir, "kernel", &counter_config[i].kernel);
|
||||||
oprofilefs_create_ulong(sb, dir, "user", &counter_config[i].user);
|
oprofilefs_create_ulong(root->d_sb, dir, "user", &counter_config[i].user);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -51,7 +51,7 @@ struct pt_regs;
|
||||||
struct oprofile_operations {
|
struct oprofile_operations {
|
||||||
/* create any necessary configuration files in the oprofile fs.
|
/* create any necessary configuration files in the oprofile fs.
|
||||||
* Optional. */
|
* Optional. */
|
||||||
int (*create_files)(struct super_block * sb, struct dentry * root);
|
int (*create_files)(struct dentry * root);
|
||||||
/* Do any necessary interrupt setup. Optional. */
|
/* Do any necessary interrupt setup. Optional. */
|
||||||
int (*setup)(void);
|
int (*setup)(void);
|
||||||
/* Do any necessary interrupt shutdown. Optional. */
|
/* Do any necessary interrupt shutdown. Optional. */
|
||||||
|
|
Loading…
Reference in a new issue