Should Fedora continue installing mcelog by default?

While testing Fedora composes I noticed mcelog.service consistently fails on modern AMD CPUs.

I updated the package locally from upstream 175 to 212.
Even upstream 212 still reports these CPUs as unsupported.
rasdaemon works correctly on the same systems.

Fedora Packaging Guidelines state default services should not fail under normal operating conditions.

Therefore I’d like to discuss whether Fedora should:

  • continue shipping mcelog by default,
  • replace it with rasdaemon,
  • disable mcelog on unsupported hardware,
  • or take another approach.

I’d like to hear opinions from people familiar with RAS and Fedora packaging before proposing any concrete change.

2 Likes

Just my humble 2 cents worth here, Replacing mcelog with rasdaemon as the default hardware monitoring tool is the most viable path for Fedora, driven by mcelog’s deprecation and incompatibility with modern processors.

I’m glad you brought this up, I’m kindof the new kid on the block so I tread lightlly…

Same here…

It seems rasdaemon stores events in SQLite databases, providing structured data that is easier to query and integrate with monitoring tools compared to the flat-file approach of mcelog. Major distributions and infrastructure providers have already migrated to rasdaemon to resolve these compatibility and maintenance issues.

Also this:

sudo systemctl status rasdaemon && systemctl status mcelog
[sudo] password for me: 
● rasdaemon.service - RAS daemon to log the RAS events
     Loaded: loaded (/usr/lib/systemd/system/rasdaemon.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2026-08-04 11:28:33 MDT; 7min ago
 Invocation: 272038f40afb466d85edd860512014cb
   Main PID: 69456 (rasdaemon)
      Tasks: 1 (limit: 18790)
     Memory: 876K (peak: 2.4M)
        CPU: 28ms
     CGroup: /system.slice/rasdaemon.service
             └─69456 /usr/bin/rasdaemon -f -r

Aug 04 11:28:33 fedora rasdaemon[69456]: Enabled event block:block_rq_error
Aug 04 11:28:33 fedora rasdaemon[69456]: ras:memory_failure_event event enabled
Aug 04 11:28:33 fedora rasdaemon[69456]: Enabled event ras:memory_failure_event
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording mc_event events
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording aer_event events
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording extlog_event events
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording mce_record events
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording devlink_event events
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording disk_errors events
Aug 04 11:28:33 fedora rasdaemon[69456]: rasdaemon: Recording memory_failure_event events
Failed to execute 'pager', will try 'less' next: Permission denied
○ mcelog.service - Machine Check Exception Logging Daemon
     Loaded: loaded (/usr/lib/systemd/system/mcelog.service; disabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: inactive (dead)

Aug 04 10:36:04 fedora systemd[1]: mcelog.service - Machine Check Exception Logging Daemon skipped, unmet co>
lines 1-7/7 (END)

3 Likes

[…]

Therefore I’d like to discuss whether Fedora should:
* continue shipping mcelog by default,
* replace it with rasdaemon,
* disable mcelog on unsupported hardware,
* or take another approach.

I think mcelog should exit with no error or its systemd service should
be modified to accept the exit code indicating “unsupported hardware” as
non-failure.

If rasdaemon supports old CPUs then having it replace mcelog sounds like
a good idea, too.

Regards,
Dominik

2 Likes

It does support older processors, and more obscure processors as well interestingly.
On their github "EDAC is a Linux kernel subsystem with handles detection of ECC errors from memory controllers for most chipsets on i386 and x86_64 architectures. "

The list of supported processors is in its codebase

1 Like