summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2016-10-27 08:00:46 -0400
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-12-15 05:54:49 -0500
commit032d0ab743ff8ee340d5fc2a00c833dfe74c49e4 (patch)
tree3fe8393f6a656ec7901f18f6ac2f7661b75a5096
parent723061753724009a6e3cbec9deba7860dba2df99 (diff)
edac.txt: add a section explaining the dimmX and rankX directories
Documentation for those are missing at the EDAC description. I guess we end by moving such descriptions in the past to the ABI document (or only added it there), but it means that the EDAC documentation is incomplete. So, add it there. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--Documentation/edac.txt120
1 files changed, 120 insertions, 0 deletions
diff --git a/Documentation/edac.txt b/Documentation/edac.txt
index f89cfd85ae13..502988524519 100644
--- a/Documentation/edac.txt
+++ b/Documentation/edac.txt
@@ -208,6 +208,126 @@ For a description of the sysfs API, please see:
208 Documentation/ABI/testing/sysfs-devices-edac 208 Documentation/ABI/testing/sysfs-devices-edac
209 209
210 210
211``dimmX`` or ``rankX`` directories
212----------------------------------
213
214The recommended way to use the EDAC subsystem is to look at the information
215provided by the ``dimmX`` or ``rankX`` directories [#f5]_.
216
217A typical EDAC system has the following structure under
218``/sys/devices/system/edac/``\ [#f6]_::
219
220 /sys/devices/system/edac/
221 ├── mc
222 │   ├── mc0
223 │   │   ├── ce_count
224 │   │   ├── ce_noinfo_count
225 │   │   ├── dimm0
226 │   │   │   ├── dimm_dev_type
227 │   │   │   ├── dimm_edac_mode
228 │   │   │   ├── dimm_label
229 │   │   │   ├── dimm_location
230 │   │   │   ├── dimm_mem_type
231 │   │   │   ├── size
232 │   │   │   └── uevent
233 │   │   ├── max_location
234 │   │   ├── mc_name
235 │   │   ├── reset_counters
236 │   │   ├── seconds_since_reset
237 │   │   ├── size_mb
238 │   │   ├── ue_count
239 │   │   ├── ue_noinfo_count
240 │   │   └── uevent
241 │   ├── mc1
242 │   │   ├── ce_count
243 │   │   ├── ce_noinfo_count
244 │   │   ├── dimm0
245 │   │   │   ├── dimm_dev_type
246 │   │   │   ├── dimm_edac_mode
247 │   │   │   ├── dimm_label
248 │   │   │   ├── dimm_location
249 │   │   │   ├── dimm_mem_type
250 │   │   │   ├── size
251 │   │   │   └── uevent
252 │   │   ├── max_location
253 │   │   ├── mc_name
254 │   │   ├── reset_counters
255 │   │   ├── seconds_since_reset
256 │   │   ├── size_mb
257 │   │   ├── ue_count
258 │   │   ├── ue_noinfo_count
259 │   │   └── uevent
260 │   └── uevent
261 └── uevent
262
263In the ``dimmX`` directories are EDAC control and attribute files for
264this ``X`` memory module:
265
266- ``size`` - Total memory managed by this csrow attribute file
267
268 This attribute file displays, in count of megabytes, the memory
269 that this csrow contains.
270
271- ``dimm_dev_type`` - Device type attribute file
272
273 This attribute file will display what type of DRAM device is
274 being utilized on this DIMM.
275 Examples:
276
277 - x1
278 - x2
279 - x4
280 - x8
281
282- ``dimm_edac_mode`` - EDAC Mode of operation attribute file
283
284 This attribute file will display what type of Error detection
285 and correction is being utilized.
286
287- ``dimm_label`` - memory module label control file
288
289 This control file allows this DIMM to have a label assigned
290 to it. With this label in the module, when errors occur
291 the output can provide the DIMM label in the system log.
292 This becomes vital for panic events to isolate the
293 cause of the UE event.
294
295 DIMM Labels must be assigned after booting, with information
296 that correctly identifies the physical slot with its
297 silk screen label. This information is currently very
298 motherboard specific and determination of this information
299 must occur in userland at this time.
300
301- ``dimm_location`` - location of the memory module
302
303 The location can have up to 3 levels, and describe how the
304 memory controller identifies the location of a memory module.
305 Depending on the type of memory and memory controller, it
306 can be:
307
308 - *csrow* and *channel* - used when the memory controller
309 doesn't identify a single DIMM - e. g. in ``rankX`` dir;
310 - *branch*, *channel*, *slot* - typically used on FB-DIMM memory
311 controllers;
312 - *channel*, *slot* - used on Nehalem and newer Intel drivers.
313
314- ``dimm_mem_type`` - Memory Type attribute file
315
316 This attribute file will display what type of memory is currently
317 on this csrow. Normally, either buffered or unbuffered memory.
318 Examples:
319
320 - Registered-DDR
321 - Unbuffered-DDR
322
323.. [#f5] On some systems, the memory controller doesn't have any logic
324 to identify the memory module. On such systems, the directory is called ``rankX`` and works on a similar way as the ``csrowX`` directories.
325 On modern Intel memory controllers, the memory controller identifies the
326 memory modules directly. On such systems, the directory is called ``dimmX``.
327
328.. [#f6] There are also some ``power`` directories and ``subsystem``
329 symlinks inside the sysfs mapping that are automatically created by
330 the sysfs subsystem. Currently, they serve no purpose.
211 331
212'csrowX' directories 332'csrowX' directories
213-------------------- 333--------------------