Re: [PATCH v24b] RAS: Add a tracepoint for reporting memory controllerevents

From: Mauro Carvalho Chehab
Date: Tue May 22 2012 - 06:18:30 EST


Em 22-05-2012 06:28, Borislav Petkov escreveu:
> On Tue, May 22, 2012 at 12:04:48AM -0300, Mauro Carvalho Chehab wrote:
>> +TRACE_EVENT(mc_event,
>> +
>> + TP_PROTO(const unsigned int err_type,
>> + const unsigned int mc_index,
>> + const char *error_msg,
>> + const char *label,
>> + int layer0,
>> + int layer1,
>> + int layer2,
>
> Those are EDAC-internal layer representation, why are they exported to
> userspace? Userspace needs only the location and label AFAICT.

Those are not the EDAC internal layer representation. They're the physical
location of the DIMM or rank.

> If you export them to userspace, they need much more meaningful names -
> layer{0,1,2} mean nothing outside of the kernel.

Ok. Do you have a better naming suggestion?

What about layer0_pos, layer1_pos, layer2_pos?

>
>> + unsigned long pfn,
>> + unsigned long offset,
>> + unsigned long grain,
>
> Why aren't those a single 'unsigned long address' since they all are
> computed from it?

We can merge pfn and offset into "unsigned long address".

With regards to the grain, it is an address mask, written with a "short" way.
So, grain 32, for example, means:
ffff:ffff:ffff:fffe0

As the current EDAC API exports it as grain, IMO, it is better to keep it as-is,
but it won't be hard to do:
unsigned long mask = ((unsigned long) -1) && (1 - grain)

What do you think?

>> + unsigned long syndrome,
>> + const char *driver_detail),
>> +
>> + TP_ARGS(err_type, mc_index, error_msg, label, layer0, layer1, layer2,
>> + pfn, offset, grain, syndrome, driver_detail),
>>
>> The address is there using the edac way to represent it (page, offset, grain).
>

Regards,
Mauro
--
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/