summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2016-10-26 06:43:58 -0400
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-12-15 05:54:50 -0500
commite4b5301674c0d2d866de767f02a44bc322af8d7f (patch)
tree64df58428c999beee1ba008b48158e0f2aa876f9
parent96714bd7078fecc91631596c3ca4ddd0fd3ecde6 (diff)
edac.txt: update information about newer Intel CPUs
There's a chapter at edac.rst written by the time Nehalem support was added. Such information is used not only by the Nehalem driver (i7core_edac), but by all newer Intel CPU architectures that are supported by i7core_edac, sb_edac and sbx_edac drivers. Update the information to reflect that. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--Documentation/edac.txt44
1 files changed, 29 insertions, 15 deletions
diff --git a/Documentation/edac.txt b/Documentation/edac.txt
index fba193044af0..0c9161c9ed7a 100644
--- a/Documentation/edac.txt
+++ b/Documentation/edac.txt
@@ -741,13 +741,25 @@ The ``test_device_edac`` sample driver is located at the
741http://bluesmoke.sourceforge.net project site for EDAC. 741http://bluesmoke.sourceforge.net project site for EDAC.
742 742
743 743
744Nehalem Usage of EDAC APIs 744Usage of EDAC APIs on Nehalem and newer Intel CPUs
745-------------------------- 745--------------------------------------------------
746 746
747Due to the way Nehalem exports Memory Controller data, some adjustments 747On older Intel architectures, the memory controller was part of the North
748were done at i7core_edac driver. This chapter will cover those differences 748Bridge chipset. Nehalem, Sandy Bridge, Ivy Bridge, Haswell, Sky Lake and
749newer Intel architectures integrated an enhanced version of the memory
750controller (MC) inside the CPUs.
749 751
7501) On Nehalem, there is one Memory Controller per Quick Patch Interconnect 752This chapter will cover the differences of the enhanced memory controllers
753found on newer Intel CPUs, such as ``i7core_edac``, ``sb_edac`` and
754``sbx_edac`` drivers.
755
756.. note::
757
758 The Xeon E7 processor families use a separate chip for the memory
759 controller, called Intel Scalable Memory Buffer. This section doesn't
760 apply for such families.
761
7621) There is one Memory Controller per Quick Patch Interconnect
751 (QPI). At the driver, the term "socket" means one QPI. This is 763 (QPI). At the driver, the term "socket" means one QPI. This is
752 associated with a physical CPU socket. 764 associated with a physical CPU socket.
753 765
@@ -757,7 +769,7 @@ were done at i7core_edac driver. This chapter will cover those differences
757 769
758 The minimum known unity is DIMMs. There are no information about csrows. 770 The minimum known unity is DIMMs. There are no information about csrows.
759 As EDAC API maps the minimum unity is csrows, the driver sequentially 771 As EDAC API maps the minimum unity is csrows, the driver sequentially
760 maps channel/dimm into different csrows. 772 maps channel/DIMM into different csrows.
761 773
762 For example, supposing the following layout:: 774 For example, supposing the following layout::
763 775
@@ -780,8 +792,8 @@ were done at i7core_edac driver. This chapter will cover those differences
780 792
781 Each QPI is exported as a different memory controller. 793 Each QPI is exported as a different memory controller.
782 794
7832) Nehalem MC has the ability to generate errors. The driver implements this 7952) The MC has the ability to inject errors to test drivers. The drivers
784 functionality via some error injection nodes: 796 implement this functionality via some error injection nodes:
785 797
786 For injecting a memory error, there are some sysfs nodes, under 798 For injecting a memory error, there are some sysfs nodes, under
787 ``/sys/devices/system/edac/mc/mc?/``: 799 ``/sys/devices/system/edac/mc/mc?/``:
@@ -855,13 +867,14 @@ were done at i7core_edac driver. This chapter will cover those differences
855 867
856 EDAC MC0: UE row 0, channel-a= 0 channel-b= 0 labels "-": NON_FATAL (addr = 0x0075b980, socket=0, Dimm=0, Channel=2, syndrome=0x00000040, count=1, Err=8c0000400001009f:4000080482 (read error: read ECC error)) 868 EDAC MC0: UE row 0, channel-a= 0 channel-b= 0 labels "-": NON_FATAL (addr = 0x0075b980, socket=0, Dimm=0, Channel=2, syndrome=0x00000040, count=1, Err=8c0000400001009f:4000080482 (read error: read ECC error))
857 869
8583) Nehalem specific Corrected Error memory counters 8703) Corrected Error memory register counters
859 871
860 Nehalem have some registers to count memory errors. The driver uses those 872 Those newer MCs have some registers to count memory errors. The driver
861 registers to report Corrected Errors on devices with Registered Dimms. 873 uses those registers to report Corrected Errors on devices with Registered
874 DIMMs.
862 875
863 However, those counters don't work with Unregistered Dimms. As the chipset 876 However, those counters don't work with Unregistered DIMM. As the chipset
864 offers some counters that also work with UDIMMS (but with a worse level of 877 offers some counters that also work with UDIMMs (but with a worse level of
865 granularity than the default ones), the driver exposes those registers for 878 granularity than the default ones), the driver exposes those registers for
866 UDIMM memories. 879 UDIMM memories.
867 880
@@ -896,8 +909,8 @@ were done at i7core_edac driver. This chapter will cover those differences
8964) Standard error counters 9094) Standard error counters
897 910
898 The standard error counters are generated when an mcelog error is received 911 The standard error counters are generated when an mcelog error is received
899 by the driver. Since, with udimm, this is counted by software, it is 912 by the driver. Since, with UDIMM, this is counted by software, it is
900 possible that some errors could be lost. With rdimm's, they display the 913 possible that some errors could be lost. With RDIMM's, they display the
901 contents of the registers 914 contents of the registers
902 915
903Reference documents used on ``amd64_edac`` 916Reference documents used on ``amd64_edac``
@@ -958,6 +971,7 @@ Credits
958* |copy| Mauro Carvalho Chehab 971* |copy| Mauro Carvalho Chehab
959 972
960 - 05 Aug 2009 Nehalem interface 973 - 05 Aug 2009 Nehalem interface
974 - 26 Oct 2016 Converted to ReST and cleanups at the Nehalem section
961 975
962* EDAC authors/maintainers: 976* EDAC authors/maintainers:
963 977