X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fresourceview%2Fdrawing.c;h=294b8339f6cfe448cfc5204d6f05a78854b2be47;hb=a970363f31999693ffbc0d7d6cf8a15d03677d64;hp=519e69ae8898226896816b315facbe865f24e7b1;hpb=ca5c76edcc349ca600edde3ecfd0f93b1505625d;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c b/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c index 519e69ae..294b8339 100644 --- a/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c +++ b/ltt/branches/poly/lttv/modules/gui/resourceview/drawing.c @@ -89,6 +89,7 @@ GdkColor drawing_colors_cpu[NUM_COLORS_CPU] = { 0, 0xBBBB, 0xBBBB, 0xBBBB }, /* COL_CPU_IDLE */ { 0, 0xFFFF, 0xFFFF, 0xFFFF }, /* COL_CPU_BUSY */ { 0, 0xFFFF, 0x5E00, 0x0000 }, /* COL_CPU_IRQ */ + { 0, 0xFFFF, 0x9400, 0x9600 }, /* COL_CPU_SOFT_IRQ */ { 0, 0xFF00, 0xFF00, 0x0100 }, /* COL_CPU_TRAP */ }; @@ -99,6 +100,20 @@ GdkColor drawing_colors_irq[NUM_COLORS_IRQ] = { 0, 0xFFFF, 0x5E00, 0x0000 }, /* COL_IRQ_BUSY */ }; +GdkColor drawing_colors_soft_irq[NUM_COLORS_SOFT_IRQ] = +{ /* Pixel, R, G, B */ + { 0, 0x0000, 0x0000, 0x0000 }, /* COL_SOFT_IRQ_UNKNOWN */ + { 0, 0x0000, 0x0000, 0x0000 }, /* COL_SOFT_IRQ_IDLE */ + { 0, 0xFFFF, 0x9400, 0x9600 }, /* COL_SOFT_IRQ_BUSY */ +}; + +GdkColor drawing_colors_trap[NUM_COLORS_TRAP] = +{ /* Pixel, R, G, B */ + { 0, 0x0000, 0x0000, 0x0000 }, /* COL_TRAP_UNKNOWN */ + { 0, 0x0000, 0x0000, 0x0000 }, /* COL_TRAP_IDLE */ + { 0, 0xFF00, 0xFF00, 0x0100 }, /* COL_TRAP_BUSY */ +}; + GdkColor drawing_colors_bdev[NUM_COLORS_BDEV] = { /* Pixel, R, G, B */ { 0, 0x0000, 0x0000, 0x0000 }, /* COL_BDEV_UNKNOWN */ @@ -138,7 +153,7 @@ void drawing_data_request(Drawing_t *drawing, ControlFlowData *control_flow_data = drawing->control_flow_data; // (ControlFlowData*)g_object_get_data( - // G_OBJECT(drawing->drawing_area), "control_flow_data"); + // G_OBJECT(drawing->drawing_area), "resourceview_data"); LttTime start, time_end; LttTime window_end = time_window.end_time; @@ -277,22 +292,22 @@ void drawing_data_request(Drawing_t *drawing, before_execmode_hook, events_request, &hooks); -// -// lttv_trace_find_hook(ts->parent.t, -// LTT_FACILITY_KERNEL, -// LTT_EVENT_SOFT_IRQ_ENTRY, -// FIELD_ARRAY(LTT_FIELD_SOFT_IRQ_ID), -// before_execmode_hook, -// events_request, -// &hooks); -// -// lttv_trace_find_hook(ts->parent.t, -// LTT_FACILITY_KERNEL, -// LTT_EVENT_SOFT_IRQ_EXIT, -// NULL, -// before_execmode_hook, -// events_request, -// &hooks); + + lttv_trace_find_hook(ts->parent.t, + LTT_FACILITY_KERNEL, + LTT_EVENT_SOFT_IRQ_ENTRY, + FIELD_ARRAY(LTT_FIELD_SOFT_IRQ_ID), + before_execmode_hook, + events_request, + &hooks); + + lttv_trace_find_hook(ts->parent.t, + LTT_FACILITY_KERNEL, + LTT_EVENT_SOFT_IRQ_EXIT, + NULL, + before_execmode_hook, + events_request, + &hooks); lttv_trace_find_hook(ts->parent.t, @@ -453,7 +468,7 @@ void drawing_data_request(Drawing_t *drawing, static void set_last_start(gpointer key, gpointer value, gpointer user_data) { - ResourceInfo *process_info = (ResourceInfo*)key; + //ResourceInfo *process_info = (ResourceInfo*)key; HashedResourceData *hashed_process_data = (HashedResourceData*)value; guint x = (guint)user_data; @@ -473,6 +488,8 @@ static void set_last_start(gpointer key, gpointer value, gpointer user_data) void drawing_data_request_begin(EventsRequest *events_request, LttvTracesetState *tss) { + int i; + g_debug("Begin of data request"); ControlFlowData *cfd = events_request->viewer_data; LttvTracesetContext *tsc = LTTV_TRACESET_CONTEXT(tss); @@ -490,8 +507,10 @@ void drawing_data_request_begin(EventsRequest *events_request, LttvTracesetState width, &x); - g_hash_table_foreach(cfd->process_list->process_hash, set_last_start, - (gpointer)x); + for(i=0; iprocess_list->restypes[i].hash_table, set_last_start, + (gpointer)x); + } } @@ -499,7 +518,7 @@ void drawing_chunk_begin(EventsRequest *events_request, LttvTracesetState *tss) { g_debug("Begin of chunk"); ControlFlowData *cfd = events_request->viewer_data; - LttvTracesetContext *tsc = &tss->parent.parent; + LttvTracesetContext *tsc = &tss->parent; //LttTime current_time = lttv_traceset_context_get_current_tfc(tsc)->timestamp; guint i; LttvTraceset *traceset = tsc->ts; @@ -673,7 +692,7 @@ expose_event( GtkWidget *widget, GdkEventExpose *event, gpointer user_data ) ControlFlowData *control_flow_data = (ControlFlowData*)g_object_get_data( G_OBJECT(widget), - "control_flow_data"); + "resourceview_data"); #if 0 if(unlikely(drawing->gc == NULL)) { drawing->gc = gdk_gc_new(drawing->drawing_area->window); @@ -800,7 +819,7 @@ button_press_event( GtkWidget *widget, GdkEventButton *event, gpointer user_data ControlFlowData *control_flow_data = (ControlFlowData*)g_object_get_data( G_OBJECT(widget), - "control_flow_data"); + "resourceview_data"); Drawing_t *drawing = control_flow_data->drawing; TimeWindow time_window = lttvwindow_get_time_window(control_flow_data->tab); @@ -1003,6 +1022,10 @@ Drawing_t *drawing_construct(ControlFlowData *control_flow_data) TRUE, success); gdk_colormap_alloc_colors(colormap, drawing_colors_irq, NUM_COLORS_IRQ, FALSE, TRUE, success); + gdk_colormap_alloc_colors(colormap, drawing_colors_soft_irq, NUM_COLORS_SOFT_IRQ, FALSE, + TRUE, success); + gdk_colormap_alloc_colors(colormap, drawing_colors_trap, NUM_COLORS_TRAP, FALSE, + TRUE, success); gdk_colormap_alloc_colors(colormap, drawing_colors_bdev, NUM_COLORS_BDEV, FALSE, TRUE, success); @@ -1063,6 +1086,8 @@ void drawing_destroy(Drawing_t *drawing) gdk_colormap_free_colors(colormap, drawing_colors, NUM_COLORS); gdk_colormap_free_colors(colormap, drawing_colors_cpu, NUM_COLORS_CPU); gdk_colormap_free_colors(colormap, drawing_colors_irq, NUM_COLORS_IRQ); + gdk_colormap_free_colors(colormap, drawing_colors_soft_irq, NUM_COLORS_IRQ); + gdk_colormap_free_colors(colormap, drawing_colors_trap, NUM_COLORS_TRAP); gdk_colormap_free_colors(colormap, drawing_colors_bdev, NUM_COLORS_BDEV); // Do not unref here, Drawing_t destroyed by it's widget.