2013-03-06 13:51:29

by Steven Rostedt

[permalink] [raw]
Subject: [RFC][PATCH 2/2] tracing: Do not return EINVAL in snapshot when not allocated

From: "Steven Rostedt (Red Hat)" <[email protected]>

To use the tracing snapshot feature, writing a '1' into the snapshot
file causes the snapshot buffer to be allocated if it has not already
been allocated and dose a 'swap' with the main buffer, so that the
snapshot now contains what was in the main buffer, and the main buffer
now writes to what was the snapshot buffer.

To free the snapshot buffer, a '0' is written into the snapshot file.

To clear the snapshot buffer, any number but a '0' or '1' is written
into the snapshot file. But if the file is not allocated it returns
-EINVAL error code. This is rather pointless. It is better just to
do nothing and return success.

Cc: Hiraku Toyooka <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
---
kernel/trace/trace.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 9e3120b..1f835a8 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4167,8 +4167,6 @@ tracing_snapshot_write(struct file *filp, const char __user *ubuf, size_t cnt,
default:
if (current_trace->allocated_snapshot)
tracing_reset_online_cpus(&max_tr);
- else
- ret = -EINVAL;
break;
}

--
1.7.10.4


2013-03-07 06:14:35

by Hiraku Toyooka

[permalink] [raw]
Subject: Re: [RFC][PATCH 2/2] tracing: Do not return EINVAL in snapshot when not allocated

(03/06/2013 10:49 PM), Steven Rostedt wrote:
> From: "Steven Rostedt (Red Hat)"<[email protected]>
>
> To use the tracing snapshot feature, writing a '1' into the snapshot
> file causes the snapshot buffer to be allocated if it has not already
> been allocated and dose a 'swap' with the main buffer, so that the
> snapshot now contains what was in the main buffer, and the main buffer
> now writes to what was the snapshot buffer.
>
> To free the snapshot buffer, a '0' is written into the snapshot file.
>
> To clear the snapshot buffer, any number but a '0' or '1' is written
> into the snapshot file. But if the file is not allocated it returns
> -EINVAL error code. This is rather pointless. It is better just to
> do nothing and return success.
>
> Cc: Hiraku Toyooka<[email protected]>
> Signed-off-by: Steven Rostedt<[email protected]>
> ---

Acked-by: Hiraku Toyooka <[email protected]>

> kernel/trace/trace.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index 9e3120b..1f835a8 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -4167,8 +4167,6 @@ tracing_snapshot_write(struct file *filp, const char __user *ubuf, size_t cnt,
> default:
> if (current_trace->allocated_snapshot)
> tracing_reset_online_cpus(&max_tr);
> - else
> - ret = -EINVAL;
> break;
> }
>
> -- 1.7.10.4 .
>