aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan <hermanjl@hermanjl-Aspire-5553G.(none)>2012-03-08 16:02:28 -0500
committerJonathan <hermanjl@hermanjl-Aspire-5553G.(none)>2012-03-08 16:02:28 -0500
commitf63a8fd5b4c431f1e271829af0760939f226f72c (patch)
tree67dfe7708cd0fde2359f6bb8dede885a07430233
parent974e24aaa13b710713b1654b11ffeefafef3723e (diff)
rt-graph: triangles only appear when their width < 50ms
-rw-r--r--rt-plot-task.c2
-rw-r--r--trace-graph.c26
2 files changed, 20 insertions, 8 deletions
diff --git a/rt-plot-task.c b/rt-plot-task.c
index 57662b7..1e2cd5d 100644
--- a/rt-plot-task.c
+++ b/rt-plot-task.c
@@ -768,7 +768,7 @@ void rt_plot_task(struct graph_info *ginfo, int pid, int pos)
768 len = strlen(comm) + 100; 768 len = strlen(comm) + 100;
769 plot_label = malloc_or_die(len); 769 plot_label = malloc_or_die(len);
770 snprintf(plot_label, len, 770 snprintf(plot_label, len,
771 "*%s-%d\n(%llu.%1llu, %llu.%1llu)", 771 "%s-%d\n(%llu.%1llu, %llu.%1llu)",
772 comm, pid, wm, wn, pm, pn); 772 comm, pid, wm, wn, pm, pn);
773 plot = trace_graph_plot_insert(ginfo, pos, plot_label, PLOT_TYPE_RT_TASK, 773 plot = trace_graph_plot_insert(ginfo, pos, plot_label, PLOT_TYPE_RT_TASK,
774 &rt_task_cb, rtt_info); 774 &rt_task_cb, rtt_info);
diff --git a/trace-graph.c b/trace-graph.c
index f63c202..de29e45 100644
--- a/trace-graph.c
+++ b/trace-graph.c
@@ -55,6 +55,7 @@
55#define PLOT_GIVE 2 55#define PLOT_GIVE 2
56#define PLOT_BEGIN 80 56#define PLOT_BEGIN 80
57#define PLOT_SEP 50 57#define PLOT_SEP 50
58#define MAX_TRI_TIME 50000000
58#define PLOT_LINE(plot) (PLOT_SEP * (plot) + PLOT_BEGIN + PLOT_SIZE) 59#define PLOT_LINE(plot) (PLOT_SEP * (plot) + PLOT_BEGIN + PLOT_SIZE)
59#define PLOT_TOP(plot) (PLOT_LINE(plot) - PLOT_SIZE * 2) 60#define PLOT_TOP(plot) (PLOT_LINE(plot) - PLOT_SIZE * 2)
60#define PLOT_BOX_TOP(plot) (PLOT_LINE(plot) - PLOT_SIZE) 61#define PLOT_BOX_TOP(plot) (PLOT_LINE(plot) - PLOT_SIZE)
@@ -86,6 +87,11 @@ static guint64 convert_x_to_time(struct graph_info *ginfo, gint x)
86 return (guint64)(d / ginfo->resolution) + ginfo->view_start_time; 87 return (guint64)(d / ginfo->resolution) + ginfo->view_start_time;
87} 88}
88 89
90static int convert_dist_to_time(struct graph_info *ginfo, int dist)
91{
92 return convert_x_to_time(ginfo, dist) - convert_x_to_time(ginfo, 0);
93}
94
89static void print_time(unsigned long long time) 95static void print_time(unsigned long long time)
90{ 96{
91 unsigned long sec, usec; 97 unsigned long sec, usec;
@@ -1697,9 +1703,11 @@ static void draw_plot_release(struct graph_info *ginfo, int i,
1697 tpoints[2].x = x + PLOT_TRI_SIZE/2; 1703 tpoints[2].x = x + PLOT_TRI_SIZE/2;
1698 tpoints[2].y = tbase; 1704 tpoints[2].y = tbase;
1699 1705
1700 gdk_draw_line(ginfo->curr_pixmap, gc, 1706 if (convert_dist_to_time(ginfo, PLOT_TRI_SIZE) < MAX_TRI_TIME) {
1701 x, tbase, x, PLOT_BOX_BOTTOM(i)); 1707 gdk_draw_line(ginfo->curr_pixmap, gc,
1702 gdk_draw_polygon(ginfo->curr_pixmap, gc, FALSE, tpoints, 3); 1708 x, tbase, x, PLOT_BOX_BOTTOM(i));
1709 gdk_draw_polygon(ginfo->curr_pixmap, gc, FALSE, tpoints, 3);
1710 }
1703} 1711}
1704 1712
1705static void draw_plot_deadline(struct graph_info *ginfo, int i, 1713static void draw_plot_deadline(struct graph_info *ginfo, int i,
@@ -1715,9 +1723,11 @@ static void draw_plot_deadline(struct graph_info *ginfo, int i,
1715 tpoints[2].x = x + PLOT_TRI_SIZE/2; 1723 tpoints[2].x = x + PLOT_TRI_SIZE/2;
1716 tpoints[2].y = tbase; 1724 tpoints[2].y = tbase;
1717 1725
1718 gdk_draw_line(ginfo->curr_pixmap, gc, 1726 if (convert_dist_to_time(ginfo, PLOT_TRI_SIZE) < MAX_TRI_TIME) {
1719 x, PLOT_BOX_TOP(i), x, tbase); 1727 gdk_draw_line(ginfo->curr_pixmap, gc,
1720 gdk_draw_polygon(ginfo->curr_pixmap, gc, FALSE, tpoints, 3); 1728 x, PLOT_BOX_TOP(i), x, tbase);
1729 gdk_draw_polygon(ginfo->curr_pixmap, gc, FALSE, tpoints, 3);
1730 }
1721} 1731}
1722 1732
1723static void draw_plot_completion(struct graph_info *ginfo, int i, 1733static void draw_plot_completion(struct graph_info *ginfo, int i,
@@ -1733,7 +1743,9 @@ static void draw_plot_completion(struct graph_info *ginfo, int i,
1733 tpoints[2].x = x + PLOT_BTRI_SIZE/2; 1743 tpoints[2].x = x + PLOT_BTRI_SIZE/2;
1734 tpoints[2].y = tbase; 1744 tpoints[2].y = tbase;
1735 1745
1736 gdk_draw_polygon(ginfo->curr_pixmap, gc, TRUE, tpoints, 3); 1746 if (convert_dist_to_time(ginfo, PLOT_BTRI_SIZE) < MAX_TRI_TIME) {
1747 gdk_draw_polygon(ginfo->curr_pixmap, gc, TRUE, tpoints, 3);
1748 }
1737} 1749}
1738 1750
1739static void draw_plot(struct graph_info *ginfo, struct graph_plot *plot, 1751static void draw_plot(struct graph_info *ginfo, struct graph_plot *plot,