mcelog.conf(5)

๐Ÿ“ฆ
version 204 ยท 2 versions
, in opensuse-leap 16.0

๐Ÿ’– NAME ๐Ÿ’–

mcelog.conf โ€” literally the mcelog.conf reference, bestie. This is the mcelog.conf(5) page from the File Formats Manual, and itโ€™s giving โ€œconfig file that runs the whole mcelog situation.โ€ ๐ŸŽ€

๐ŸŒธ SYNOPSIS ๐ŸŒธ

/etc/mcelog.conf

๐Ÿ’… DESCRIPTION ๐Ÿ’…

/etc/mcelog.conf is the main configuration file for mcelog(8). Itโ€™s split into sections, including a default section. Yes, weโ€™re doing sections, bestie โ€” stay with me. ๐Ÿ’–

๐Ÿงš General format ๐Ÿงš

optionname = value

White space is not allowed in value currently, except at the end where it is dropped. Noted. Periodt. โœจ

In general, all command line options that are not commands work here. See man mcelog or mcelog --help for a list. For example, to enable the --no-syslog option use:

no-syslog = yes

โ€ฆor no to disable it.

When the option has a argument, it looks like this:

logfile = /tmp/logfile

Below are the options which are not command line options.

  • cpu = type โ€” set the CPU type for which mcelog decodes events. For valid values for type, please see mcelog --help. If this value is set incorrectly, the decoded output will be likely incorrect. By default, when this parameter is not set, mcelog uses the CPU it is running on; on very new kernels the mcelog events reported by the kernel also carry the CPU type, which is used too when available and not overridden. ๐Ÿง โœจ
  • daemon = yes โ€” enable daemon mode. By default, mcelog just processes the currently pending events and exits. In daemon mode it keeps running as a daemon in the background, polls the kernel for events, and then decodes them. Main character energy: it stays. ๐Ÿ‘‘
  • filter = yes โ€” filter out known broken events by default. ๐Ÿซถ
  • filter-memory-errors = yes โ€” donโ€™t log memory errors individually. They still get accounted if that is enabled. ๐Ÿ’…
  • raw = yes โ€” output in undecoded raw format to be easier machine readable; the default is decoded. ๐Ÿค–
  • cpumhz = 1800.00 โ€” set CPU MHz to decode uptime from time stamp counter. Output is unreliable, and this is not needed on new kernels which report the event time directly. A lot of systems donโ€™t have a linear time stamp clock, and the output is wrong then. Normally mcelog tries to figure out if it the TSC is reliable and only uses the current frequency then. Setting a frequency forces timestamp decoding. This setting is obsolete with modern kernels which report the time directly. ๐Ÿ•ฐ๏ธ๐Ÿ˜ญ

๐Ÿ“ Log output options ๐Ÿ“

  • syslog = yes โ€” log decoded machine checks in syslog; the default is stdout or syslog for daemon. ๐Ÿ“ฌ
  • syslog-error = yes โ€” log decoded machine checks in syslog with error level. ๐Ÿšจ
  • no-syslog = yes โ€” never log anything to syslog. Nope, not even a little. ๐Ÿ™ˆ
  • logfile = filename โ€” append log output to logfile instead of stdout. Only when no syslog logging is active. ๐Ÿ“„
  • dmi = no โ€” use SMBIOS information to decode DIMMs (needs root). This function is not recommended to use right now and generally not needed. The exception is memdb prepopulation, which is configured separately below. ๐Ÿงฌ
  • run-credentials-user = root โ€” when in daemon mode, run as this user after set up. Note that the triggers will run as this user too. Setting this to non-root will mean that triggers cannot take some corrective action, like offlining objects. โš ๏ธ
  • run-credentials-group = nobody โ€” group to run as daemon with default to the group of the run-credentials-user. ๐Ÿ‘ฏ

๐Ÿ–ฅ๏ธ The server config section ๐Ÿ–ฅ๏ธ

  • client-user = root โ€” user allowed to access client socket. When set to * match any; root is always allowed to access. default: root only. ๐Ÿ”
  • client-group = root โ€” group allowed to access mcelog. When no group is configured any group matches (but still user checking). When set to * match any. ๐Ÿซ‚
  • socket-path = /var/run/mcelog-client โ€” path to the Unix socket for client<->server communication. When no socket-path is configured the server will not start. ๐Ÿ”Œ
  • initial-ping-timeout = 2 โ€” when mcelog starts it checks if a server is already running. This configures the timeout for this check. โฑ๏ธ
  • listen-backlog = 10 โ€” listen backlog for the Unix socket. default: 10. ๐Ÿ“š

๐Ÿงš The dimm config section ๐Ÿงš

  • dimm-tracking-enabled = yes โ€” is the in-memory DIMM error tracking enabled? Only works on systems with integrated memory controller and which are supported. Only takes effect in daemon mode. ๐Ÿง 
  • dmi-prepopulate = yes โ€” use DMI information from the BIOS to prepopulate DIMM database. Note this might not work with all BIOS and requires mcelog to run as root. Alternative is to let mcelog create DIMM objects on demand. ๐Ÿ—๏ธ

Execute these triggers when the rate of corrected or uncorrected Errors per DIMM exceeds the threshold. Note when the hardware does not report DIMMs this might also be per channel. The default of 10/24h is reasonable for server quality DDR3 DIMMs as of 2009/10.

  • uc-error-trigger = dimm-error-trigger โ€” trigger for uncorrected DIMM error thresholds. ๐Ÿšจ
  • uc-error-threshold = 1 / 24h โ€” uncorrected error threshold. โณ
  • ce-error-trigger = dimm-error-trigger โ€” trigger for corrected DIMM error thresholds. โœ…
  • ce-error-threshold = 10 / 24h โ€” corrected error threshold. ๐Ÿ’–

๐Ÿ”Œ The socket config section ๐Ÿ”Œ

  • socket-tracking-enabled = yes โ€” enable memory error accounting per socket. ๐Ÿงฎ

Threshold and trigger for uncorrected memory errors on a socket:

  • mem-uc-error-trigger = socket-memory-error-trigger โ€” trigger script for uncorrected memory errors on a socket. ๐Ÿšจ
  • mem-uc-error-threshold = 100 / 24h โ€” threshold for uncorrected memory errors on a socket. โณ
  • mem-ce-error-trigger = socket-memory-error-trigger โ€” trigger script for corrected memory errors on a socket. โœ…
  • mem-ce-error-threshold = 100 / 24h โ€” threshold on when to trigger a correct error for the socket. ๐Ÿ“ˆ
  • mem-ce-error-log = yes โ€” log socket error threshold explicitly? ๐Ÿ‘€
  • bus-uc-threshold-trigger = bus-error-trigger โ€” trigger script for uncorrected bus error events. ๐ŸšŒ
  • iomca-threshold-trigger = iomca-error-trigger โ€” trigger script for uncorrected iomca erors. ๐Ÿงฉ
  • unknown-threshold-trigger = unknown-error-trigger โ€” trigger script for other uncategorized errors. โ“

๐ŸงŠ The cache config section ๐ŸงŠ

Processing of cache error thresholds reported by Intel CPUs.

  • cache-threshold-trigger = cache-error-trigger โ€” trigger for cache error threshold processing from Intel CPUs. ๐Ÿง 
  • cache-threshold-log = yes โ€” should cache threshold events be logged explicitly? ๐Ÿ‘€

๐Ÿ“„ The page config section ๐Ÿ“„

Memory error accounting per 4k memory page. Threshold for the correct memory errors trigger script.

  • memory-ce-threshold = 2 / 24h โ€” threshold for the correct memory errors trigger script. ๐Ÿงฎ
  • memory-ce-offline-retry = yes โ€” retry failed offlines with exponential backoff. ๐Ÿ”
  • memory-ce-trigger = page-error-trigger โ€” trigger script for corrected errors. โœ…
  • memory-ce-counter-replacement-threshold = 20 / 24h โ€” memory error counter per 4k memory page. Threshold for the counter replacements trigger script. ๐Ÿ”ข
  • memory-ce-counter-replacement-trigger = page-error-counter-replacement-trigger โ€” trigger script for counter replacements. ๐Ÿ› ๏ธ
  • memory-ce-log = yes โ€” should page threshold events be logged explicitly? ๐Ÿ‘€

Specify the internal action in mcelog for exceeding a page error threshold. This is done in addition to executing the trigger script if available:

  • off โ€” no action
  • account โ€” only account errors
  • soft โ€” try to soft-offline page without killing any processes. This requires an uptodate kernel. Might not be successfull. ๐Ÿ˜ฌ
  • hard โ€” try to hard-offline page by killing processes. Requires an uptodate kernel. Might not be successfull. ๐Ÿ’€
  • soft-then-hard โ€” first try to soft offline, then try hard offlining. ๐ŸŽข
memory-ce-action = off|account|soft|hard|soft-then-hard
memory-ce-action = soft
  • memory-pre-sync-soft-ce-trigger = page-error-pre-sync-soft-trigger โ€” trigger script before doing soft memory offline. This trigger will scan and run all the scipts in the page-error-pre-soft-trigger.extern. ๐Ÿงš
  • memory-post-sync-soft-ce-trigger = page-error-post-sync-soft-trigger โ€” trigger script after completing soft memory offline. This trigger will scan and run all the scipts in the page-error-post-soft-trigger.extern. ๐Ÿงš

โš™๏ธ The trigger config section โš™๏ธ

  • children-max = 2 โ€” maximum number of running triggers. ๐Ÿ‘ฏ
  • directory = /etc/mcelog โ€” execute triggers in this directory. ๐Ÿ“

๐ŸŒˆ SEE ALSO ๐ŸŒˆ


๐Ÿซถ source/version: mcelog ยท page: mcelog.conf(5) ยท date: the original footer didnโ€™t list one, so Iโ€™m not inventing one, bestie. Periodt. ๐Ÿ’–
๐Ÿ“ฆ where this page comes from