kernel_optimize_test/drivers/edac
Mauro Carvalho Chehab 5926ff502f edac: Initialize the dimm label with the known information
While userspace doesn't fill the dimm labels, add there the dimm location,
as described by the used memory model. This could eventually match what
is described at the dmidecode, making easier for people to identify the
memory.

For example, on an Intel motherboard where the DMI table is reliable,
the first memory stick is described as:

Memory Device
	Array Handle: 0x0029
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: DIMM
	Set: 1
	Locator: A1_DIMM0
	Bank Locator: A1_Node0_Channel0_Dimm0
	Type: <OUT OF SPEC>
	Type Detail: Synchronous
	Speed: 800 MHz
	Manufacturer: A1_Manufacturer0
	Serial Number: A1_SerNum0
	Asset Tag: A1_AssetTagNum0
	Part Number: A1_PartNum0

The memory named as "A1_DIMM0" is physically located at the first
memory controller (node 0), at channel 0, dimm slot 0.

After this patch, the memory label will be filled with:
	/sys/devices/system/edac/mc/csrow0/ch0_dimm_label:mc#0channel#0slot#0

And (after the new EDAC API patches) as:
	/sys/devices/system/edac/mc/mc0/dimm0/dimm_label:mc#0channel#0slot#0

So, even if the memory label is not initialized on userspace, an useful
information with the error location is filled there, expecially since
several systems/motherboards are provided with enough info to map from
channel/slot (or branch/channel/slot) into the DIMM label. So, letting the
EDAC core fill it by default is a good thing.

It should noticed that, as the label filling happens at the
edac_mc_alloc(), drivers can override it to better describe the memories
(and some actually do it).

Cc: Aristeu Rozanski <arozansk@redhat.com>
Cc: Doug Thompson <norsk5@yahoo.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-28 19:13:50 -03:00
..
amd64_edac_dbg.c EDAC, MCE: Rework MCE injection 2010-10-21 14:47:59 +02:00
amd64_edac_inj.c amd64_edac: Add support for F15h DCT PCI config accesses 2011-03-17 14:46:11 +01:00
amd64_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
amd64_edac.h amd64_edac: Erratum #637 workaround 2011-04-26 16:18:56 +02:00
amd76x_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
amd8111_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.h edac: AMD8111 driver header file 2009-04-02 19:05:03 -07:00
amd8131_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8131_edac.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
cell_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
cpc925_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
e7xxx_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
e752x_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
edac_core.h edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
edac_device_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device.c edac: rewrite edac_align_ptr() 2012-05-28 19:10:59 -03:00
edac_mc_sysfs.c edac: Initialize the dimm label with the known information 2012-05-28 19:13:50 -03:00
edac_mc.c edac: Initialize the dimm label with the known information 2012-05-28 19:13:50 -03:00
edac_module.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
edac_module.h edac: rewrite edac_align_ptr() 2012-05-28 19:10:59 -03:00
edac_pci_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci.c edac: rewrite edac_align_ptr() 2012-05-28 19:10:59 -03:00
edac_stub.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
i7core_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i3000_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i3200_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i5000_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i5100_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i5400_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i7300_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i82443bxgx_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i82860_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i82875p_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
i82975x_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
Kconfig edac: sb_edac: Let the driver depend on PCI_MMCONFIG 2012-03-21 15:19:56 -03:00
Makefile edac: sb_edac: Add it to the building system 2011-11-01 10:01:54 -02:00
mce_amd_inj.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
mce_amd.c MCE, AMD: Drop too granulary family model checks 2012-04-04 15:50:11 +02:00
mce_amd.h MCE, AMD: Constify error tables 2012-03-19 12:06:26 +01:00
mpc85xx_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
mpc85xx_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
mv64x60_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
mv64x60_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
pasemi_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
ppc4xx_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
ppc4xx_edac.h edac: new ppc4xx driver module 2009-04-02 19:05:03 -07:00
r82600_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
sb_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
tile_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00
x38_edac.c edac: Remove the legacy EDAC ABI 2012-05-28 19:13:50 -03:00