On Tue, 09 Aug 2011 08:53:15 -0400, Steven Rostedt <srostedt@xxxxxxxxxx> wrote: > On Tue, 2011-08-09 at 18:12 +0530, Aneesh Kumar K.V wrote: > > > +#define P9_PROTO_DUMP_SZ (16 * 3 + 2 + 16 + 1) > > Wow, you're making your event have 67 byte arrays, two of them. > > > +TRACE_EVENT(9p_protocol_dump, > > + TP_PROTO(struct p9_client *clnt, struct p9_fcall *pdu), > > + > > + TP_ARGS(clnt, pdu), > > + > > + TP_STRUCT__entry( > > + __field( __u64, clnt ) > > + __field( __u8, type ) > > + __field( __u16, tag ) > > + __array( unsigned char, line1, P9_PROTO_DUMP_SZ ) > > + __array( unsigned char, line2, P9_PROTO_DUMP_SZ ) > > + ), > > Wouldn't it be better to put this as two unsigned char arrays of 16 > bytes? > > > + > > + TP_fast_assign( > > + const u8 *ptr = pdu->sdata; > > + __entry->clnt = (__u64)clnt; > > + __entry->type = pdu->id; > > + __entry->tag = pdu->tag; > > + hex_dump_to_buffer(ptr, 16, 16, > > + 1, __entry->line1, P9_PROTO_DUMP_SZ, true); > > + hex_dump_to_buffer(ptr + 16, 16, 16, > > + 1, __entry->line2, P9_PROTO_DUMP_SZ, true); > > + ), > > + > > + 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. -aneesh -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html