Re: [PATCH 08/10] oprofile: set values to default when creatingoprofilefs

From: Andrew Morton
Date: Tue Dec 16 2008 - 04:36:00 EST


On Thu, 11 Dec 2008 16:04:44 +0100 Robert Richter <robert.richter@xxxxxxx> wrote:

> This patch restores default values for:
>
> /dev/oprofile/cpu_buffer_size
> /dev/oprofile/buffer_watershed
> /dev/oprofile/buffer_size
>
> when creating the oprofilefs:
>
> # opcontrol --deinit
> # opcontrol --init
> # cat /dev/oprofile/cpu_buffer_size
> 8192
> # echo 5123 > /dev/oprofile/cpu_buffer_size
> # cat /dev/oprofile/cpu_buffer_size
> 5123
> # opcontrol --deinit
> # opcontrol --init
> # cat /dev/oprofile/cpu_buffer_size
> 8192
> # opcontrol --deinit
>
> This sets the values in a defined state. Before, there was no way to
> restore the defaults without rebooting the system or reloading the
> module.
>
> Signed-off-by: Robert Richter <robert.richter@xxxxxxx>
> ---
> drivers/oprofile/oprofile_files.c | 15 ++++++++++++---
> 1 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c
> index cc106d5..d820199 100644
> --- a/drivers/oprofile/oprofile_files.c
> +++ b/drivers/oprofile/oprofile_files.c
> @@ -14,9 +14,13 @@
> #include "oprofile_stats.h"
> #include "oprof.h"
>
> -unsigned long fs_buffer_size = 131072;
> -unsigned long fs_cpu_buffer_size = 8192;
> -unsigned long fs_buffer_watershed = 32768; /* FIXME: tune */
> +#define FS_BUFFER_SIZE_DEFAULT 131072
> +#define FS_CPU_BUFFER_SIZE_DEFAULT 8192
> +#define FS_BUFFER_WATERSHED_DEFAULT 32768 /* FIXME: tune */
> +
> +unsigned long fs_buffer_size;
> +unsigned long fs_cpu_buffer_size;
> +unsigned long fs_buffer_watershed;

These were poorly chosen kernel-wide identifiers.

> static ssize_t depth_read(struct file *file, char __user *buf, size_t count, loff_t *offset)
> {
> @@ -120,6 +124,11 @@ static const struct file_operations dump_fops = {
>
> void oprofile_create_files(struct super_block *sb, struct dentry *root)
> {
> + /* reinitialize default values */
> + fs_buffer_size = FS_BUFFER_SIZE_DEFAULT;
> + fs_cpu_buffer_size = FS_CPU_BUFFER_SIZE_DEFAULT;
> + fs_buffer_watershed = FS_BUFFER_WATERSHED_DEFAULT;
> +
> oprofilefs_create_file(sb, root, "enable", &enable_fops);
> oprofilefs_create_file_perm(sb, root, "dump", &dump_fops, 0666);
> oprofilefs_create_file(sb, root, "buffer", &event_buffer_fops);

afacit oprofile_create_files() only gets run when the module is loaded,
so this patch is a no-op?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/