Re: [PATCH v29] RAS: Add a tracepoint for reporting memorycontroller events

From: Borislav Petkov
Date: Fri Jun 01 2012 - 11:21:21 EST


On Fri, Jun 01, 2012 at 12:07:38PM -0300, Mauro Carvalho Chehab wrote:
> + * Default error mechanisms for Memory Controller errors (CE and UE)
> + */
> +TRACE_EVENT(mc_event,
> +
> + TP_PROTO(const unsigned int err_type,
> + const char *error_msg,
> + const char *label,
> + const int error_count,
> + const u8 mc_index,
> + const s8 layer0,
> + const s8 layer1,
> + const s8 layer2,

Btw, why are the layers still called layer[012] but differently below?
This is confusing.

Also, edac_mc_handle_error() should have the top/middle/lower layer arg
names too.

And also, why are the layers s8? Any reason for the signedness?

> + unsigned long address,
> + const int grain_bits,

This is an int here and a u8 below?

I was just about to befriend the idea of grain being u8 and accepting it
as a compromise.

Make it a u8 and cast it at the call sites of trace_mc_event instead.

> + unsigned long syndrome,
> + const char *driver_detail),
> +
> + TP_ARGS(err_type, error_msg, label, error_count, mc_index,
> + layer0, layer1, layer2, address, grain_bits, syndrome,
> + driver_detail),
> +
> + TP_STRUCT__entry(
> + __field( unsigned int, error_type )
> + __string( msg, error_msg )
> + __string( label, label )
> + __field( u16, error_count )
> + __field( u8, mc_index )
> + __field( s8, top_layer )
> + __field( s8, middle_layer )
> + __field( s8, lower_layer )
> + __field( long, address )
> + __field( u8, grain_bits )
> + __field( long, syndrome )
> + __string( driver_detail, driver_detail )
> + ),

--
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
GM: Alberto Bozzo
Reg: Dornach, Landkreis Muenchen
HRB Nr. 43632 WEEE Registernr: 129 19551
--
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/