Fix freezes in Proxmox VE 8.2

Some Proxmox VE 8.2 hosts freeze and may not even reboot. Two kernel parameters, pcie_port_pm=off and libata.force=noncq, stop it until a fixed kernel is out.

Contents

Proxmox Virtual Environment combines the KVM hypervisor and LXC containers into one of the leading open-source virtualisation platforms; I explain why I like it so much elsewhere. Version 8.2 brought several improvements, but users have reported that hosts sometimes freeze. Here is the workaround: two kernel parameters.

A newer kernel, probably 6.8.8-1, is expected to fix the root cause.

The problem

The host becomes unresponsive during normal operation, and sometimes even a reboot fails. On a production system that is a serious problem. The cause usually lies in how the kernel handles certain hardware, specifically PCIe power management and ATA command queuing.

The fix

  1. Open a shell on the Proxmox host, from the web interface or over SSH.

  2. Open the kernel command line in an editor:

    nano /etc/kernel/cmdline
  3. Append these parameters to the existing line:

    pcie_port_pm=off libata.force=noncq
  4. Save and exit (in nano: Ctrl+X, then Y, then Enter).

  5. Write the new command line to the boot configuration:

    proxmox-boot-tool refresh
  6. Reboot:

    reboot

After the reboot, the host should stay stable.

What the parameters do

pcie_port_pm=off turns off power management on all PCIe ports, so they never enter low-power states when idle. Power use can be slightly higher, which is usually fine for a hypervisor.

libata.force=noncq disables Native Command Queuing (NCQ) for all ATA devices. NCQ lets SATA drives reorder read and write commands for better performance; without it, commands are processed in the order they arrive.

Afterwards

Once a kernel with a proper fix is released, you can remove the parameters again. If you have questions, leave a comment below.

Join the discussion

Comments are hosted on comments.vciso.ch, a server I run myself. Nothing is loaded from it until you press the button below. Loading comments connects your browser to that server, and signing in with GitHub sets a cookie there. See the privacy page for details.

Type to search.

↑ ↓ to move, Enter to open, Esc to close