aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-01-08 12:56:31 -0500
committerSteven Rostedt <rostedt@goodmis.org>2010-01-08 12:56:31 -0500
commitc841456417127e8cc40b088b90b65ac4a6a6769e (patch)
tree5d9f7e88add355ab3a089b2413c9d21cdd502b97
parent69624fcc599f5f92960d0f2132df26542b92878e (diff)
trace-graph: Fix start and end event info box
The event info box was showing the wrong task if the pointer was before the first record or after the last. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-graph.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/trace-graph.c b/trace-graph.c
index 8204fc9..8676d6a 100644
--- a/trace-graph.c
+++ b/trace-graph.c
@@ -901,8 +901,10 @@ static void draw_cpu_info(struct graph_info *ginfo, gint cpu, gint x, gint y)
901 trace_seq_putc(&s, '\n'); 901 trace_seq_putc(&s, '\n');
902 } else 902 } else
903 trace_seq_printf(&s, "UNKNOW EVENT %d\n", type); 903 trace_seq_printf(&s, "UNKNOW EVENT %d\n", type);
904 } else 904 } else {
905 check_sched_switch(ginfo, record, &pid, &comm); 905 if (record->ts < time)
906 check_sched_switch(ginfo, record, &pid, &comm);
907 }
906 908
907 trace_seq_printf(&s, "%lu.%06lu", sec, usec); 909 trace_seq_printf(&s, "%lu.%06lu", sec, usec);
908 if (pid) 910 if (pid)
@@ -912,8 +914,24 @@ static void draw_cpu_info(struct graph_info *ginfo, gint cpu, gint x, gint y)
912 914
913 free_record(record); 915 free_record(record);
914 916
915 } else 917 } else {
916 trace_seq_printf(&s, "%lu.%06lu", sec, usec); 918 record = tracecmd_read_cpu_last(ginfo->handle, cpu);
919 if (record->ts < time) {
920 if (!check_sched_switch(ginfo, record, &pid, &comm)) {
921 pid = pevent_data_pid(ginfo->pevent, record);
922 comm = pevent_data_comm_from_pid(ginfo->pevent, pid);
923 }
924
925 trace_seq_printf(&s, "%lu.%06lu", sec, usec);
926 if (pid)
927 trace_seq_printf(&s, " %s-%d", comm, pid);
928 else
929 trace_seq_puts(&s, " <idle>");
930
931 } else
932 trace_seq_printf(&s, "%lu.%06lu", sec, usec);
933 free_record(record);
934 }
917 935
918 trace_seq_putc(&s, 0); 936 trace_seq_putc(&s, 0);
919 937