Re: [PATCH] net/9p: Convert net/9p protocol dumps to tracepoints

From: Steven Rostedt
Date: Tue Aug 09 2011 - 10:40:22 EST


On Tue, 2011-08-09 at 19:58 +0530, Aneesh Kumar K.V wrote:
> On Tue, 09 Aug 2011 08:53:15 -0400, Steven Rostedt <srostedt@xxxxxxxxxx> wrote:

> > > + TP_printk("clnt %lu %s(tag = %d)\n%.8x: %s\n%.8x: %s\n",
> > > + (long)__entry->clnt, show_9p_op(__entry->type),
> > > + __entry->tag, 0, __entry->line1, 16 , __entry->line2)
> >
> > Yeah, you would need to make the above ugly to print out the array, but
> > it's not that hard. And you will be saving 102 bytes per event in the
> > ring buffer, which is very expensive real-estate. Not to mention the
> > time it takes to copy all that.
> >
>
> Any suggestion on how to get this pretty printing of the hex data. I can
> update print_hex_dump_bytes to dump the hex data to a buffer. But not
> sure where i can free the buffer after using that in TP_printk.

By making it very ugly :)

TP_printk("clnt %lu %s(tag = %d)\n%.8x: "
"%02x %02x %02x %02x %02x %02x %02x %02x %02x "
"%02x %02x %02x %02x %02x %02x %02x %02x %02x\n"
"%.8x: "
"%02x %02x %02x %02x %02x %02x %02x %02x %02x "
"%02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
(long)__entry->clnt, show_9p_op(__entry->type),
__entry->tag, 0,
__entry->line1[0], __entry->line1[1],
__entry->line1[2], __entry->line1[3],
__entry->line1[4], __entry->line1[5],
__entry->line1[6], __entry->line1[7],
__entry->line1[8], __entry->line1[9],
__entry->line1[10], __entry->line1[11],
__entry->line1[12], __entry->line1[13],
__entry->line1[14], __entry->line1[15],
16,
__entry->line2[0], __entry->line2[1],
__entry->line2[2], __entry->line2[3],
__entry->line2[4], __entry->line2[5],
__entry->line2[6], __entry->line2[7],
__entry->line2[8], __entry->line2[9],
__entry->line2[10], __entry->line2[11],
__entry->line2[12], __entry->line2[13],
__entry->line2[14], __entry->line2[15])


Like I said, it's not pretty, but it saves buffer space and moves the
slow copy out of the fast path.

-- 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/