Environment
- DOCA version: 3.2.2-035000-25.10
- OS: Ubuntu 24.04
- Kernel: 6.8.0-110
- NIC: ConnectX (mlx5)
Symptom
After a cold boot (full AC cycle), openibd.service consistently fails:
openibd: running in manual mode
rmmod: ERROR: Module mlx_compat is in use by: sunrpc
systemd: openibd.service: Failed with result ‘exit-code’
Works fine after warm reboot or manual modprobe mlx5_ib —
Root Cause
/etc/init.d/openibd line 48 passes only $1 to global_initt that systemd passes via ExecStart:
ExecStart in openibd.service:
ExecStart=/etc/init.d/openibd start bootid=%b
$1 $2 ← dropped
line 48 (bug):
global_init “$1” # bootid never reaches global_init
should be:
global_init “$@”
Without bootid, set_run_mode always sets RUNMODE=manual, top() and attempts rmmod mlx_compat. On cold boot, sunrpc(loaded by rpcbind.socket activation) is already holding
In auto mode, set_run_mode compares srcversion of the loaOFED — if they match, stop() is skipped entirely andmlx5_ib loads successfully.
Fix
/etc/init.d/openibd, line 48
-
global_init “$1”
-
global_init “$@”
Verified: After applying the fix, journalctl -u openibd s the service finishes successfully on restart.
Note
/etc/init.d/openibd is owned by the mlnx-ofed-kernel-utile overwritten on package upgrade.