Re: [PATCH 3/3] tracing: add flag output for kmem events

From: Steven Rostedt
Date: Fri May 15 2009 - 17:51:14 EST



On Fri, 15 May 2009, Frederic Weisbecker wrote:

> On Fri, May 15, 2009 at 05:03:45PM -0400, Steven Rostedt wrote:
> > From: Steven Rostedt <srostedt@xxxxxxxxxx>
> >
> > This patch changes the output for gfp_flags from being a simple hex value
> > to the actual names.
> >
> > gfp_flags=GFP_ATOMIC instead of gfp_flags=00000020
> >
> > And even
> >
> > gfp_flags=GFP_KERNEL instead of gfp_flags=000000d0
> >
> > [ Impact: more human readable output from tracer ]
> >
> > Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
>
>
> Nice!
>
>
> > ---
> > include/trace/events/kmem.h | 43 +++++++++++++++++++++++++++++++++++--------
> > 1 files changed, 35 insertions(+), 8 deletions(-)
> >
> > diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h
> > index c22c42f..9b3886b 100644
> > --- a/include/trace/events/kmem.h
> > +++ b/include/trace/events/kmem.h
> > @@ -7,6 +7,33 @@
> > #undef TRACE_SYSTEM
> > #define TRACE_SYSTEM kmem
> >
> > +#define show_gfp_flags(flags) \
> > + (flags) ? __print_flags(flags, "|", \
> > + (unsigned long)GFP_KERNEL, "GFP_KERNEL", \
> > + (unsigned long)GFP_NOFS, "GFP_NOFS", \
> > + (unsigned long)GFP_TEMPORARY, "GFP_TEMPORARY", \
> > + (unsigned long)GFP_USER, "GFP_USER", \
>
>
> Because you clear the mask value after finding out a matching mask
> string, you should sort the masks from the highest number of bits
> to the lowest.
>
> GFP_USER should be placed before GFP_KERNEL otherwise it will always be
> eaten.
> Instead of GFP_USER, you will get:
>
> GFP_KERNEL | __GFP_HARDWALL

Ug, I was thinking the code only printed the mask if the mask matched
fully.

>
>
> > + (unsigned long)GFP_HIGHUSER, "GFP_HIGHUSER", \
>
>
> Ditto, it should be placed before GFP_USER otherwise you will get:
>
> GFP_USER | __GFP_HIGHMEM
>
>
> > + (unsigned long)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE", \
>
> And this one before HIGH_USER otherwise:
>
> GFP_HIGHUSER__GFP_MOVABLE

Anyway, I thought I did sort it out, but I did not realize that some masks
have masks within. I need more sleep.

Will fix in take two. Still waiting for comments from the MM folks.

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/