SURVIVABILITY MODE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ Survivability Mode(9) ✨

okay so bestie, this is from the Kernel API Manual and it's literally about saving your system when boot goes full πŸ’€. Let me tell you everything, no cap.

Survivability Mode is a software based workflow for recovering a system in a failed boot state. Here system recoverability is concerned with recovering the firmware responsible for boot. It's giving "rescue mission energy" πŸš‘βœ¨


🌸 Boot Survivability 🌸

Boot Survivability is implemented by loading the driver with bare minimum (no drm card) to allow the firmware to be flashed through mei driver and collect telemetry. The driver's probe flow is modified such that it enters survivability mode when pcode initialization is incomplete and boot status denotes a failure. iykyk 🫢

Survivability mode can also be entered manually using the survivability mode attribute available through configfs which is beneficial in several usecases. It can be used to address scenarios where pcode does not detect failure or for validation purposes. It can also be used in In-Field-Repair (IFR) to repair a single card without impacting the other cards in a node. so iconic of it honestly πŸ‘‘

Use below command enable survivability mode manually:

# echo 1 > /sys/kernel/config/xe/0000:03:00.0/survivability_mode
⚠️ It is the responsibility of the user to clear the mode once firmware flash is complete. bestie pls don't forget this part 😭

Refer :ref:xe_configfs for more details on how to use configfs

Survivability mode is indicated by the below admin-only readable sysfs entry. It provides information about the type of survivability mode (Boot/Runtime).

# cat /sys/bus/pci/devices/<device>/survivability_mode
  Boot

Any additional debug information if present will be visible under the directory ``survivability_info:

/sys/bus/pci/devices/<device>/survivability_info/
β”œβ”€β”€ aux_info0
β”œβ”€β”€ aux_info1
β”œβ”€β”€ aux_info2
β”œβ”€β”€ aux_info3
β”œβ”€β”€ aux_info4
β”œβ”€β”€ capability_info
β”œβ”€β”€ fdo_mode
β”œβ”€β”€ postcode_trace
└── postcode_trace_overflow

This directory has the following attributes πŸ’…

  • capability_info : Indicates Boot status and support for additional information
  • postcode_trace, postcode_trace_overflow : Each postcode is a 8bit value and represents a boot failure event. When a new failure event is logged by PCODE the existing postcodes are shifted left. These entries provide a history of 8 postcodes. lowkey a whole receipts trail πŸ“œ
  • aux_info<n> : Some failures have additional debug information
  • fdo_mode : To allow recovery in scenarios where MEI itself fails, a new SPI Flash Descriptor Override (FDO) mode is added in v2 survivability breadcrumbs. This mode is enabled by PCODE and provides the ability to directly update the firmware via SPI Driver without any dependency on MEI. Xe KMD initializes the nvm aux driver if FDO mode is enabled. obsessed with this fallback fr fr πŸ”₯

πŸ¦‹ Runtime Survivability πŸ¦‹

Certain runtime firmware errors can cause the device to enter a wedged state (:ref:xe-device-wedging) requiring a firmware flash to restore normal operation. Runtime Survivability Mode indicates that a firmware flash is necessary to recover the device and is indicated by the presence of survivability mode sysfs. Survivability mode sysfs provides information about the type of survivability mode. it's giving "emergency but make it diagnosable" 🚨

# cat /sys/bus/pci/devices/<device>/survivability_mode
  Runtime

On some CSC firmware errors, PCODE sets FDO mode and the only recovery possible is through firmware flash using SPI driver. Userspace can check if FDO mode is set by checking the below sysfs entry.

# cat /sys/bus/pci/devices/<device>/survivability_info/fdo_mode
  enabled

When such errors occur, userspace is notified with the drm device wedged uevent and runtime survivability mode. User can then initiate a firmware flash using userspace tools like fwupd to restore device to normal operation. slay, the notification system ate πŸ’–


🌈 SEE ALSO 🌈


okay that's the whole thing bestie, you're literally a survivability mode expert now πŸŽ“βœ¨ this lived in ./drivers/gpu/drm/xe and it's dated October 2026, so consider this your official girlie pop kernel documentation moment πŸ’…πŸ‘‘

πŸ“¦ where this page comes from