lkml.org 
[lkml]   [2009]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC] tracing: adding flags to events
Steven Rostedt wrote:
> Christoph has been asking about processing flags in the output. He rather
> not see c2, and rather see what those three bits are. This patch is
> an RFC to do just that. To test it out, I added the previous task state to
> sched switch and used the flag processing to the printk of the
> sched_switch event.
>
>
> To add a flag, just add __print_flags to the TP_printk arguments.
>
> TP_STRUCT__entry(
> __field( unsigned int, flags )
> ),
>
> TP_printk("flags are %s", __print_flags(__entry->flags,
> 0, "BIT0", 1, "BIT1", 2, "BIT2", -1))
>
>
> Thus __print_flags prototype would look like:
>
> const char *__print_flags(long flags, ...);
>

How about __print_flags(long flags, char *delim, ...); ?

Take file mode for example, the output will be "rwx", but not "r|w|x".

> But it is actually converted to other helper functions to handle the
> string. The trick that ftrace does, is disables preemption before calling
> the printk, uses a percpu buffer, and passes that in to a helper function
> that will print out the flags.
>
> You could see "flags are BIT1|BIT2" if flags was 6 in the above case.
>




\
 
 \ /
  Last update: 2009-05-15 04:21    [W:0.088 / U:0.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site