Hi Ramesh,

reading the trace files with tid instead of pid will make it much easier 
to follow each threads flow of control.

Tools such as trace2dot should also benefit.

Example:
   :

Mar 15 10:57:54.837368 osafamfd [475:src/imm/agent/imma_oi_api.cc:2960] 
TR attr:safCSIComp
Mar 15 10:57:54.837459 osafamfd [475:src/imm/agent/imma_oi_api.cc:2960] 
TR attr:saAmfCSICompHAState
Mar 15 10:57:54.837510 osafamfd [475:src/imm/agent/imma_oi_api.cc:2960] 
TR attr:saAmfCSICompHAReadinessState
Mar 15 10:57:54.839783 osafamfd [477:src/amf/amfd/timer.cc:0154] >> 
avd_tmr_exp
Mar 15 10:57:54.839909 osafamfd [477:src/amf/amfd/timer.cc:0175] << 
avd_tmr_exp
Mar 15 10:57:54.840535 osafamfd [478:src/mds/mds_dt_trans.c:0608] >> 
mdtm_process_poll_recv_data_tcp

and e.g.:

grep 'osafamfd \[475' osafamfd > amfd_475_trace

grep 'osafamfd \[477' osafamfd > amfd_477_trace

etc. we can have one trace file per thread.

/Regards Hans

On 03/15/2017 10:49 AM, ramesh betham wrote:
> Is there any requirement/necessity came across to know the "tid' in 
> log info?.
>
> In general 'pid' is something commonly referred specific to process. 
> Referring tid in some logs and pid in some other logs may lead to 
> confusion while debugging.
>
> How about having both pid:tid values?
>
> Thanks,
> Ramesh.
>
> On 3/14/2017 8:59 PM, Anders Widell wrote:
>> Ack.
>>
>> regards,
>>
>> Anders Widell
>>
>>
>> On 03/13/2017 01:16 PM, Hans Nordeback wrote:
>>>   src/base/logtrace.c |  7 ++++++-
>>>   1 files changed, 6 insertions(+), 1 deletions(-)
>>>
>>>
>>> Even though not being LSB it would be good to use thread id instead 
>>> of process id in trace.
>>>
>>> diff --git a/src/base/logtrace.c b/src/base/logtrace.c
>>> --- a/src/base/logtrace.c
>>> +++ b/src/base/logtrace.c
>>> @@ -48,6 +48,11 @@ static const char *ident;
>>>   static const char *pathname;
>>>   static int logmask;
>>>   +static pid_t gettid(void)
>>> +{
>>> +    return syscall(SYS_gettid);
>>> +}
>>> +
>>>   /**
>>>    * USR2 signal handler to enable/disable trace (toggle)
>>>    * @param sig
>>> @@ -100,7 +105,7 @@ void output_(const char *file, unsigned
>>>       i = snprintf(preamble, sizeof(preamble), "%s.%06ld %s ", 
>>> log_string, tv.tv_usec, ident);
>>>         snprintf(&preamble[i], sizeof(preamble) - i, "[%d:%s:%04u] 
>>> %s %s",
>>> -        getpid(), file, line, prefix_name[priority + category], 
>>> format);
>>> +        gettid(), file, line, prefix_name[priority + category], 
>>> format);
>>>       i = vsnprintf(log_string, sizeof(log_string), preamble, ap);
>>>         /* Check if the logtrace user had passed message length >= 
>>> logtrace array limit of 1023.
>>
>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to