aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-02-01 21:25:05 -0500
committerSteven Rostedt <rostedt@goodmis.org>2010-02-01 22:32:44 -0500
commit24a173b9abeb79e1dc8c84dd9bcfd965dfca6eca (patch)
tree39a0c9615d907377b4de6a447292e85f03590242
parent6843871167d7472c5cb705db9c7650143da9866e (diff)
trace-cmd: Do not enable tracing until exec
Wait till the last moment to enable tracing. Otherwise we trace the trace-cmd utility setting up the program and waste a lot of the data file. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-cmd.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/trace-cmd.c b/trace-cmd.c
index 75bc325..182c8d6 100644
--- a/trace-cmd.c
+++ b/trace-cmd.c
@@ -249,6 +249,21 @@ static void clear_trace(void)
249 fclose(fp); 249 fclose(fp);
250} 250}
251 251
252static void reset_max_latency(void)
253{
254 FILE *fp;
255 char *path;
256
257 /* reset the trace */
258 path = get_tracing_file("tracing_max_latency");
259 fp = fopen(path, "w");
260 if (!fp)
261 die("writing to '%s'", path);
262 put_tracing_file(path);
263 fwrite("0", 1, 1, fp);
264 fclose(fp);
265}
266
252static void update_ftrace_pid(const char *pid) 267static void update_ftrace_pid(const char *pid)
253{ 268{
254 char *path; 269 char *path;
@@ -269,6 +284,7 @@ static void update_ftrace_pid(const char *pid)
269} 284}
270 285
271static void update_pid_event_filters(char *pid); 286static void update_pid_event_filters(char *pid);
287static void enable_tracing(void);
272 288
273static void update_task_filter(void) 289static void update_task_filter(void)
274{ 290{
@@ -277,6 +293,7 @@ static void update_task_filter(void)
277 293
278 if (!filter_task) { 294 if (!filter_task) {
279 update_ftrace_pid(""); 295 update_ftrace_pid("");
296 enable_tracing();
280 return; 297 return;
281 } 298 }
282 299
@@ -286,8 +303,7 @@ static void update_task_filter(void)
286 303
287 update_pid_event_filters(spid); 304 update_pid_event_filters(spid);
288 305
289 /* clear the trace */ 306 enable_tracing();
290
291} 307}
292 308
293void run_cmd(int argc, char **argv) 309void run_cmd(int argc, char **argv)
@@ -717,6 +733,9 @@ static void write_tracing_on(int on)
717static void enable_tracing(void) 733static void enable_tracing(void)
718{ 734{
719 write_tracing_on(1); 735 write_tracing_on(1);
736
737 if (latency)
738 reset_max_latency();
720} 739}
721 740
722static void disable_tracing(void) 741static void disable_tracing(void)
@@ -734,21 +753,6 @@ static void disable_all(void)
734 clear_trace(); 753 clear_trace();
735} 754}
736 755
737static void reset_max_latency(void)
738{
739 FILE *fp;
740 char *path;
741
742 /* reset the trace */
743 path = get_tracing_file("tracing_max_latency");
744 fp = fopen(path, "w");
745 if (!fp)
746 die("writing to '%s'", path);
747 put_tracing_file(path);
748 fwrite("0", 1, 1, fp);
749 fclose(fp);
750}
751
752static void update_pid_event_filters(char *pid) 756static void update_pid_event_filters(char *pid)
753{ 757{
754 struct event_list *event; 758 struct event_list *event;
@@ -1246,10 +1250,6 @@ int main (int argc, char **argv)
1246 sleep(1); 1250 sleep(1);
1247 } 1251 }
1248 } else { 1252 } else {
1249 enable_tracing();
1250 if (latency)
1251 reset_max_latency();
1252
1253 if (!record) 1253 if (!record)
1254 exit(0); 1254 exit(0);
1255 1255