Articles on: ggRock
This article is also available in:

Resolving System Instability and iSCSI Timeouts on Intel E800 Series (ICE) Adapters

Resolving System Instability and iSCSI Timeouts on Intel E800 Series (ICE) Adapters

Symptoms

Systems utilizing Intel E810 or other 800-series network adapters (governed by the ice driver) may experience the following issues, particularly in diskless or iSCSI-booted environments:

  • Complete System Hangs: The server becomes unresponsive during high I/O events, such as Virtual Machine (VM) boots or large file transfers.
  • iSCSI Connection Drops: Kernel logs show Did not receive response to NOPIN, followed by iSCSI session failure.
  • Storage Target Errors: Storage services report an inability to locate Target IQNs, causing client disks to disconnect.
  • ZFS Deadlocks: If using ZFS, logs may be flooded with debugfs errors regarding zd block devices already being present.

Root Cause

The primary cause is a Firmware-to-Kernel Mismatch affecting the Dynamic Device Personalization (DDP) package.

When a Linux system is upgraded (e.g., from Kernel 5.10 to 6.1), the ice driver often expects a specific versioned DDP profile (e.g., ice-xxxxxxxxxxxxxxxx.pkg). If this file is missing from /lib/firmware/intel/ice/ddp/, the driver falls back to a generic "OS Default" mode or "Safe Mode".

In this sub-optimal state, the NIC disables advanced hardware offloading and packet steering. Under heavy load, the CPU becomes overwhelmed with network interrupts, leading to missed heartbeats for storage traffic and a total system deadlock.

Resolution Path

1. Identify the Missing Firmware

Check the system logs to identify the exact filename the kernel is requesting:

Bash

dmesg | grep ice

Look for an error similar to: firmware: failed to load intel/ice/ddp/ice-xxxxxxxxxxxxxxxx.pkg (-2).

2. Deploy Optimized Comms DDP Firmware

The "OS Default" package is often insufficient for storage workloads. It is recommended to use the Intel Ethernet 800 Series Telecommunication (Comms) DDP Package.

  1. Download the latest Comms DDP package from the Intel Support website.
  2. Extract and copy the .pkg file to the system firmware directory: cp ice_comms-x.x.xx.x.pkg /lib/firmware/intel/ice/ddp/

Create symlinks to satisfy the kernel's specific request using the existing high-performance package:

Bash

cd /lib/firmware/intel/ice/ddp
# Link the generic name
ln -sf ice_comms-x.x.xx.x.pkg ice.pkg
# Link the specific name requested in dmesg
ln -sf ice_comms-x.x.xx.x.pkg ice-xxxxxxxxxxxxxxxx.pkg

4. Rebuild Boot Image and Reboot

To ensure the driver loads the optimized firmware at the earliest stage of boot, rebuild the initramfs:

Bash

update-initramfs -u
reboot

Verification

Post-reboot, verify that the advanced firmware has loaded successfully:

Bash

dmesg | grep ice

Correct Output: ice 0000:xx:xx.x: The DDP package was successfully loaded: ICE COMMS Package version x.x.xx.x

Once hardware offloading is active, iSCSI heartbeats should remain stable even during peak I/O saturation.

Updated on: 25/03/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!