Thread (13 messages) 13 messages, 5 authors, 2012-11-30

Re: [PATCH 1/3] aerdrv: Trace Event for AER

From: Borislav Petkov <bp@alien8.de>
Date: 2012-11-30 13:42:40
Also in: linux-pci, lkml

On Fri, Nov 30, 2012 at 06:39:11AM -0500, Steven Rostedt wrote:
On Fri, 2012-11-30 at 11:53 +0100, Borislav Petkov wrote:
quoted
On Thu, Nov 29, 2012 at 08:51:19PM -0500, Steven Rostedt wrote:
quoted
quoted
 include/ras/aer_event.h |   77 +++++++++++++++++++++++++++++++++++++++++++++++
Is there a reason this header is here? Egad, I never noticed the
ras_event.h that is there. This include/ras directory was created for
the sole purpose of trace events! This is not the way to do this.
Well, the idea for the ras event was to be able to use it in multiple
places. It is currently used only by EDAC but it could be that memory
errors could be reported by other agents which would reuse that TP.
If it's generic, then place it into the include/trace/events directory,
the you don't need to have the TRACE_INCLUDE_PATH as that is the default
path the macros will use.
Hmm, so I'm thinking maybe we should add a ras.h header there which
contains all RAS TPs.
quoted
quoted
Please look at the sample in samples/trace_events/

The proper way is to keep the header by the driver. Then you can simply
include the header with "aer_event.h".

But to have the macro magic work, you need to modify the Makefile to
have something like:

CFLAGS_aerdrv_errprint.o = -I$(src)
So I'm guessing that every .c file including the TP should also -I
include the TP definition header wherever it is. Is that agreeable?
You only need the -I$(src) for the .c file that uses the
CREATE_TRACE_POINTS macro, as the trace point macro magic headers
require it to find the TP header.
This is done like this from EDAC's single usage site:

#define CREATE_TRACE_POINTS
#define TRACE_INCLUDE_PATH ../../include/ras
#include <ras/ras_event.h>

This is in <drivers/edac/edac_mc.c> and it doesn't to "-I$(src)" in the
edac Makefile.
Other files just need "foo.h", or <trace/events/foo.h> if it's in the
generic location.
So, it sounds to me like we should we move all RAS-specific tracepoints
to <trace/events/ras.h> and then in each usage site do:

#define CREATE_TRACE_POINTS
#include <trace/events/ras.h>

Correct?

FWIW, it looks neat and clean to me that way.

Thanks.

-- 
Regards/Gruss,
    Boris.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help