From 285468d4971f84a8a4a36ec9bf9a89d11987968c Mon Sep 17 00:00:00 2001 From: compudj Date: Sat, 29 Apr 2006 04:36:34 +0000 Subject: [PATCH] update roadmap git-svn-id: http://ltt.polymtl.ca/svn@1773 04897980-b3bd-0310-b5e0-8ef037075253 --- ltt/branches/poly/QUICKSTART | 3 +- ltt/branches/poly/configure.in | 2 +- .../doc/developer/lttng-lttv-roadmap.html | 4 +- ltt/branches/poly/ltt/ltt.h | 1 + ltt/branches/poly/ltt/tracefile.c | 3 + ltt/branches/poly/lttv/lttv/state.c | 136 +++++++++--------- 6 files changed, 80 insertions(+), 69 deletions(-) diff --git a/ltt/branches/poly/QUICKSTART b/ltt/branches/poly/QUICKSTART index 58910725..19df9ecc 100644 --- a/ltt/branches/poly/QUICKSTART +++ b/ltt/branches/poly/QUICKSTART @@ -37,6 +37,7 @@ LTTng : supported architectures : Intel Pentium (UP/SMP) with TSC ARM +C2 Microsystems (variant of MIPS) LTTV : supported architectures : @@ -47,7 +48,7 @@ PowerPC Author : Mathieu Desnoyers, September 2005 -Last update : March 13, 2006 +Last update : April 29, 2006 *********************************************************** diff --git a/ltt/branches/poly/configure.in b/ltt/branches/poly/configure.in index bef10d9f..c8d98c61 100644 --- a/ltt/branches/poly/configure.in +++ b/ltt/branches/poly/configure.in @@ -23,7 +23,7 @@ AC_PREREQ(2.57) AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) #AC_WITH_LTDL # not needed ? -AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.8.36-20042006) +AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.8.37-28042006) AM_CONFIG_HEADER(config.h) AM_PROG_LIBTOOL diff --git a/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html b/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html index e67bd74f..5765872f 100644 --- a/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html +++ b/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html @@ -37,12 +37,13 @@ view into a view of the evolution of a user definable event field.
* TODO
(3) LTTng State Dump : fix process states (currently forced to unknown).
# Jean-Hugues Deschenes
+(4) Add Xen support.
# Mathieu Desnoyers
+ # Parisa Heidari
(4) efficient dynamic event filtering while recording trace.
% Sensis Corp. Tim Bish
(5) Support CPUs with scalable frequency.
(5) Integrate LTTng and lttd with LKCD.
-(6) Add Xen support.
(7) Integrate periodical dump of perfctr hardware counters.
(8) Integrate periodical dump of SystemTAP computed information.
(8) Integrate SystemTAP logging with LTTng.
@@ -65,7 +66,6 @@ Xen
MIPS
MIPS64
#Mathieu Desnoyers
-%C2 Microsystems
%Wind River for 2.6.14
S/390

diff --git a/ltt/branches/poly/ltt/ltt.h b/ltt/branches/poly/ltt/ltt.h index ad1d42e9..df1a2339 100644 --- a/ltt/branches/poly/ltt/ltt.h +++ b/ltt/branches/poly/ltt/ltt.h @@ -166,6 +166,7 @@ typedef enum _LttTypeEnum #define LTT_ARCH_TYPE_ARM 6 #define LTT_ARCH_TYPE_PPC64 7 #define LTT_ARCH_TYPE_X86_64 8 +#define LTT_ARCH_TYPE_C2 9 /* Standard definitions for variants */ #define LTT_ARCH_VARIANT_NONE 0 /* Main architecture implementation */ diff --git a/ltt/branches/poly/ltt/tracefile.c b/ltt/branches/poly/ltt/tracefile.c index 00e34444..224d3812 100644 --- a/ltt/branches/poly/ltt/tracefile.c +++ b/ltt/branches/poly/ltt/tracefile.c @@ -993,6 +993,9 @@ static int ltt_get_facility_description(LttFacility *f, case LTT_ARCH_TYPE_X86_64: text = "_x86_64"; break; + case LTT_ARCH_TYPE_C2: + text = "_c2"; + break; default: g_error("Trace from unsupported architecture."); } diff --git a/ltt/branches/poly/lttv/lttv/state.c b/ltt/branches/poly/lttv/lttv/state.c index 8e80c943..3084b429 100644 --- a/ltt/branches/poly/lttv/lttv/state.c +++ b/ltt/branches/poly/lttv/lttv/state.c @@ -864,85 +864,91 @@ create_name_tables(LttvTraceState *tcs) name_tables->eventtype_names[i] = g_quark_from_string(fe_name->str); } #endif //0 - if(lttv_trace_find_hook(tcs->parent.t, + if(!lttv_trace_find_hook(tcs->parent.t, LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_ENTRY, LTT_FIELD_SYSCALL_ID, 0, 0, - NULL, NULL, &h)) - return; - - thf = lttv_trace_hook_get_first(&h); - - t = ltt_field_type(thf->f1); - nb = ltt_type_element_number(t); - - lttv_trace_hook_destroy(&h); + NULL, NULL, &h)) { + + thf = lttv_trace_hook_get_first(&h); + + t = ltt_field_type(thf->f1); + nb = ltt_type_element_number(t); + + lttv_trace_hook_destroy(&h); - name_tables->syscall_names = g_new(GQuark, nb); - name_tables->nb_syscalls = nb; + name_tables->syscall_names = g_new(GQuark, nb); + name_tables->nb_syscalls = nb; - for(i = 0 ; i < nb ; i++) { - name_tables->syscall_names[i] = ltt_enum_string_get(t, i); - } + for(i = 0 ; i < nb ; i++) { + name_tables->syscall_names[i] = ltt_enum_string_get(t, i); + } - //name_tables->syscall_names = g_new(GQuark, 256); - //for(i = 0 ; i < 256 ; i++) { - // g_string_printf(fe_name, "syscall %d", i); - // name_tables->syscall_names[i] = g_quark_from_string(fe_name->str); - //} + //name_tables->syscall_names = g_new(GQuark, 256); + //for(i = 0 ; i < 256 ; i++) { + // g_string_printf(fe_name, "syscall %d", i); + // name_tables->syscall_names[i] = g_quark_from_string(fe_name->str); + //} + } else { + name_tables->syscall_names = NULL; + name_tables->nb_syscalls = 0; + } - if(lttv_trace_find_hook(tcs->parent.t, LTT_FACILITY_KERNEL, + if(!lttv_trace_find_hook(tcs->parent.t, LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY, LTT_FIELD_TRAP_ID, 0, 0, - NULL, NULL, &h)) - return; + NULL, NULL, &h)) { - thf = lttv_trace_hook_get_first(&h); + thf = lttv_trace_hook_get_first(&h); - t = ltt_field_type(thf->f1); - //nb = ltt_type_element_number(t); + t = ltt_field_type(thf->f1); + //nb = ltt_type_element_number(t); - lttv_trace_hook_destroy(&h); + lttv_trace_hook_destroy(&h); - /* - name_tables->trap_names = g_new(GQuark, nb); - for(i = 0 ; i < nb ; i++) { - name_tables->trap_names[i] = g_quark_from_string( - ltt_enum_string_get(t, i)); - } - */ + /* + name_tables->trap_names = g_new(GQuark, nb); + for(i = 0 ; i < nb ; i++) { + name_tables->trap_names[i] = g_quark_from_string( + ltt_enum_string_get(t, i)); + } + */ - name_tables->trap_names = g_new(GQuark, 256); - for(i = 0 ; i < 256 ; i++) { - g_string_printf(fe_name, "trap %d", i); - name_tables->trap_names[i] = g_quark_from_string(fe_name->str); - } + name_tables->trap_names = g_new(GQuark, 256); + for(i = 0 ; i < 256 ; i++) { + g_string_printf(fe_name, "trap %d", i); + name_tables->trap_names[i] = g_quark_from_string(fe_name->str); + } + } else { + name_tables->trap_names = NULL; + } - if(lttv_trace_find_hook(tcs->parent.t, + if(!lttv_trace_find_hook(tcs->parent.t, LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY, LTT_FIELD_IRQ_ID, 0, 0, - NULL, NULL, &h)) - return; - - thf = lttv_trace_hook_get_first(&h); - - t = ltt_field_type(thf->f1); - //nb = ltt_type_element_number(t); + NULL, NULL, &h)) { + + thf = lttv_trace_hook_get_first(&h); + + t = ltt_field_type(thf->f1); + //nb = ltt_type_element_number(t); - lttv_trace_hook_destroy(&h); + lttv_trace_hook_destroy(&h); - /* - name_tables->irq_names = g_new(GQuark, nb); - for(i = 0 ; i < nb ; i++) { - name_tables->irq_names[i] = g_quark_from_string(ltt_enum_string_get(t, i)); - } - */ - - name_tables->irq_names = g_new(GQuark, 256); - for(i = 0 ; i < 256 ; i++) { - g_string_printf(fe_name, "irq %d", i); - name_tables->irq_names[i] = g_quark_from_string(fe_name->str); - } + /* + name_tables->irq_names = g_new(GQuark, nb); + for(i = 0 ; i < nb ; i++) { + name_tables->irq_names[i] = g_quark_from_string(ltt_enum_string_get(t, i)); + } + */ + name_tables->irq_names = g_new(GQuark, 256); + for(i = 0 ; i < 256 ; i++) { + g_string_printf(fe_name, "irq %d", i); + name_tables->irq_names[i] = g_quark_from_string(fe_name->str); + } + } else { + name_tables->irq_names = NULL; + } /* name_tables->soft_irq_names = g_new(GQuark, nb); for(i = 0 ; i < nb ; i++) { @@ -994,11 +1000,11 @@ free_name_tables(LttvTraceState *tcs) *(v.v_pointer) = NULL; // g_free(name_tables->eventtype_names); - g_free(name_tables->syscall_names); - g_free(name_tables->trap_names); - g_free(name_tables->irq_names); - g_free(name_tables->soft_irq_names); - g_free(name_tables); + if(name_tables->syscall_names) g_free(name_tables->syscall_names); + if(name_tables->trap_names) g_free(name_tables->trap_names); + if(name_tables->irq_names) g_free(name_tables->irq_names); + if(name_tables->soft_irq_names) g_free(name_tables->soft_irq_names); + if(name_tables) g_free(name_tables); } #ifdef HASH_TABLE_DEBUG -- 2.34.1