[ltt-dev] [PATCH] Fix initial state bug

Mathieu Desnoyers compudj at krystal.dyndns.org
Thu Nov 25 11:00:30 EST 2010


* Yannick Brosseau (yannick.brosseau at gmail.com) wrote:
> On 11/25/2010 10:29 AM, Francis Giraldeau wrote:
>> This patch fixes a bug with the initial state in the control flow  
>> viewer. When
>> a process was started before starting the trace, in some situation all  
>> the
>> states of this process was wrong, because of a unknown initial state.
>
> +/* get a given quark from lttng module enum value */
> +#define enum_quark(e, f, names) (g_quark_from_string(names[ltt_event_get_unsigned(e, f)]))
> +
>  /* Channel Quarks */
>
> The enum_quark function name sounds too generic to me. Maybe ltt_event_enum_quark or ltt_enum_quark
>
>
> +/*
> + * Quark strings that matches lttng module enums found in statedump
> + * Matching enums are from lttng-modules/ltt-statedump.c
> + */
> +static const char *const lttng_thread_type_names[] = {
> +        "USER_THREAD",     // LTTNG_USER_THREAD
> +        "KERNEL_THREAD"    // LTTNG_KERNEL_THREAD
> +};
>
> Maybe these should be in their own header file to ease the maintenance
> of the list ?

Defining a static const in a header file is wrong. It should be declared
in state.c. Also, shouldn't we declare enums in state.h to match those
in ltt-statedump.c ?

Also, we should change the occurences of e.g. "USER_THREAD" in state.c
for:

  LTTV_STATE_USER_THREAD =
        g_quark_from_static_string(lttng_thread_type_names[ENUM_USER_THREAD]);

and do the same for all these duplicated strings.

Thanks,

Mathieu

>
>
> Yannick
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list