From aa89e253617492653a090dbf48d36df6def84f9a Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 3 Feb 2010 15:41:08 -0500 Subject: trace-cmd: Handle zeroing of set_ftrace_pid on older kernels Older kernels require a "-1" be passed into set_ftrace_pid to zero it out. Newer kernels need just an empty string. The sad part is that using the wrong one will cause the write to fail. Signed-off-by: Steven Rostedt --- trace-cmd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/trace-cmd.c b/trace-cmd.c index 1365a73..be1241c 100644 --- a/trace-cmd.c +++ b/trace-cmd.c @@ -267,6 +267,7 @@ static void reset_max_latency(void) static void update_ftrace_pid(const char *pid) { char *path; + int ret; int fd; path = get_tracing_file("set_ftrace_pid"); @@ -277,7 +278,15 @@ static void update_ftrace_pid(const char *pid) if (fd < 0) return; - if (write(fd, pid, strlen(pid)) < 0) + ret = write(fd, pid, strlen(pid)); + + /* + * Older kernels required "-1" to disable pid + */ + if (ret < 0 && !strlen(pid)) + ret = write(fd, "-1", 2); + + if (ret < 0) die("error writing to %s", path); close(fd); -- cgit v1.2.2