Random System Resets SOLVED by Software Adjustment of C-States

This ongoing issue finally solved by Google’s Gemini AI. This has been a real head-scratcher for years. Nothing showed in the logs, and I was convinced it was a hardware issue, and even returned the computer to the shop several times. No “smoking gun” was ever found.

I managed to provide the clue that immediately led Gemini to the solution: The resets occurred with the Fedora distro, disappeared with the Garuda distro, and returned with the openSUSE distro.

Here is Gemini's response (after I provided my system details):

Why the Resets Stopped on Garuda

Garuda Linux uses a customized performance-tuned kernel (zen-kernel). By default, it changes the CPU governor and power management states to maximize performance. This prevents the processor from entering deep, ultra-low-voltage sleep states.

On openSUSE Leap and Fedora, standard enterprise power-saving modules are active. When your Intel CPU suddenly enters or leaves an ultra-low power state, the voltage drops too quickly. Your motherboard thinks it is a power failure and instantly reboots to protect the machine.

Gemini's Software Fix:

The Ultimate Fix: Adjust Your C-States

  • Open your system boot configuration:
sudo nano /etc/default/grub
  • Locate the line that starts with GRUB_CMDLINE_LINUX_DEFAULT=. It usually contains words like splash=silent or quiet.

  • Move your cursor inside the quotes at the end of that line, add a space, and paste this exact command parameter:

intel_idle.max_cstate=1

For example, it should look something like: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash=silent intel_idle.max_cstate=1"

  • Press Ctrl + O, then Enter to save, and Ctrl + X to exit.

  • Update your openSUSE bootloader to apply the change:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  • Reboot your computer.

And, that was the fix. No more random resets. Oh, and here are my system details:

NOTE my Intel Coffee Lake (UHD 630) CPU which Gemini noted was the “culprit”

# inxi -GSat
System:
  Host: localhost.localdomain Kernel: 6.12.0-160000.37-default arch: x86_64
    bits: 64 compiler: gcc v: 13.4.0 clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.12.0-160000.37-default
    root=UUID=ff113b6e-a2be-43c4-a297-4ed5a127ff67 splash=silent
    mitigations=auto quiet security=selinux selinux=1 intel_idle.max_cstate=1
  Desktop: KDE Plasma v: 6.4.2 tk: Qt v: N/A info: frameworks v: 6.16.0
    wm: kwin_x11 vt: 2 dm: SDDM Distro: openSUSE Leap 16.0
Graphics:
  Device-1: Intel CoffeeLake-S GT2 [UHD Graphics 630] vendor: ASUSTeK
    driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20
    ports: active: HDMI-A-3 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2
    bus-ID: 00:02.0 chip-ID: 8086:3e98 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.15 with: Xwayland v: 24.1.6
    compositor: kwin_x11 driver: X: loaded: modesetting unloaded: vesa
    alternate: fbdev,intel dri: iris gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: HDMI-A-3 mapped: HDMI-3 model: ViewSonic VX3276-FHD
    serial: V9X200262658 built: 2020 res: 1920x1080 hz: 60 dpi: 70 gamma: 1.2
    size: 698x393mm (27.48x15.47") diag: 801mm (31.5") ratio: 16:9 modes:
    max: 1920x1080 min: 720x400
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
    device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris x11: drv: iris
    inactive: wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.3.3 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel UHD Graphics 630 (CFL GT2)
    device-ID: 8086:3e98 memory: 7.53 GiB unified: yes
  API: Vulkan Message: No Vulkan data available.
Processes:
  CPU top: 5 of 296
  1: cpu: 13.2% command: chrome pid: 2344 mem: 685.7 MiB (4.3%)
  2: cpu: 12.0% command: chrome pid: 2092 mem: 159.1 MiB (1.0%)
  3: cpu: 9.7% command: java pid: 4912 mem: 1832.1 MiB (11.5%)
  4: cpu: 7.4% command: Xorg.bin pid: 1176 mem: 124.4 MiB (0.7%)
  5: cpu: 4.2% command: chrome pid: 2510 mem: 943.2 MiB (5.9%)
  System RAM: total: 16 GiB available: 15.42 GiB used: 9.7 GiB (62.9%)
  Memory top: 5 of 296
  1: mem: 1832.1 MiB (11.5%) command: java pid: 4912 cpu: 9.7%
  2: mem: 943.2 MiB (5.9%) command: chrome pid: 2510 cpu: 4.2%
  3: mem: 685.7 MiB (4.3%) command: chrome pid: 2344 cpu: 13.2%
  4: mem: 653.0 MiB (4.1%) command: chrome pid: 2044 cpu: 1.7%
  5: mem: 530.8 MiB (3.3%) command: chrome pid: 2156 cpu: 0.3%

Hi
Would it be bad if i disagreed with AI :wink:

First off, why would you effectively disable power management with setting it to 1?

Secondly, is/was the power-profiles-daemon running?

I have three Dell systems here all running Gen 9.5 CPU’s (which is not shown in your output). The CPU’s in use here are i5-10500T and i7-8700 all are Hexa Core which now use the cpu frequency driver intel_cpufreq.

In my case I noticed that the cpu frequency was not stepping with the intel_pstate driver, so for switching this to occur and power-profile-daemon to function was adding intel_pstate=passive to the boot options. In passive mode it switches to intel_cpufreq.

I’ve not had any issues with my systems suspending, likewise waking up. My systems do use GNOME and Hyprland as well as Wayland, so maybe it’s also X11/Plasma related. The Hyprland setup doesn’t even have swap, the only thing for this setup is having to press the power button to bring it out of suspend…

One other discrepancy, there is now the update-bootloader command if wanting to use the command line, or Cockpit and the Bootloader plugin :wink:

For example;

update-bootloader --add-option intel_idle.max_cstate=1
update-bootloader --config

I would suggest removing that option, check cpupower frequency-info if your using intel_pstate, set the option to passive, see if it switches to intel_cpufreq and make sure the power daemon is running. Then you can use the power settings to set performance if you want, or use balanced when not needing performance.

3 Likes

Thank you Malcolm. I appreciate you sharing your knowledge and info.

Am I risking anything with the changes I made, or are you mostly concerned with maximizing system performance?

Unsure, just check the cpu cores are switching frequency or may be on at full speed all the time etc. What does cpupower frequency-info show?

1 Like

Here it is sir:

# cpupower frequency-info
analyzing CPU 7:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 7
  CPUs which need to have their frequency coordinated by software: 7
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 4.70 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 4.70 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 800 MHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

Also, I keep an eye on temps. These are staying nice and calm:

Good you found a work-around but the real fault is to my opinion the motherboard/BIOS.

1 Like

I looked into the BIOS and did see some interesting settings, such as C-State settings. Good to know for future reference; thank you.

In my bios there is a setting that implements a “dummy load” for this sort of thing in the power or miscellaneous section I believe and is usually caused by an older PSU reading the “deep sleep” state as a failure

1 Like

Most interesting. That does sound exactly related.