Re: [PATCH] tracing: don't macro-expand arguments before stringification in TP_printk

From: Steven Rostedt
Date: Mon Feb 22 2016 - 22:23:46 EST


On Wed, 16 Dec 2015 01:28:12 +0100
Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> wrote:

> Bah, just found 0462b5664b (ftrace: Output REC->var instead of
> __entry->var for trace format). There's some magic here I don't
> understand, but I'm wondering if '__entry' wouldn't do just as well as
> 'REC' for the tools that try to parse these strings.
>
>

Sorry for the late reply, but I just found this in my INBOX :-)

Several tools already exist that use REC to parse. It would be ABI
breakage to suddenly convert it to __entry.

Not to mention, even in your example of:

((unsigned int) ((REC->dev) >> 20)), ((unsigned int) ((REC->dev) & ((1U << 20) - 1)))

which came from

MAJOR(__entry->dev), MINOR(__entry->dev),


The parsing tools don't know how to parse MAJOR or MINOR but they do
know how to do the above macro expansions.

Just an FYI,

-- Steve