intel / intel/ethernet-linux-ice

Backport XSK queue teardown fixes from torvalds/linux mainline (tx_timeout + NULL deref during AF_XDP reload)

Open
#61 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C
Stars
60
Forks
21
PR merge metrics
No merged PRs in 30d

Description

We're hitting a reproducible NIC crash (host becomes permanently unreachable) on ice 2.2.8 during AF_XDP/XSK socket setup/teardown under TX load. The crash sequence is:

1. False TX watchdog timeout (transmit queue N timed out) during `ice_qp_dis`
2. PF reset triggers NULL pointer dereference in `ice_qp_dis+0x6c` (ring pointer freed during reset)
3. Workqueue deadlock between `ice_service_task` and `xp_release_deferred` — NIC never recovers

The upstream Linux kernel already has 4 commits (merged Jul-Aug 2024) that fix this. They all modify `ice_xsk.c` (`ice_qp_dis` / `ice_qp_ena`):

- 99099c6bc75a (https://github.com/torvalds/linux/commit/99099c6bc75a) — Reorder IRQ/NAPI disable before touching queues
- 405d9999aa0b (https://github.com/torvalds/linux/commit/405d9999aa0b) — Add `synchronize_net()` before queue stop
- 9da75a511c55 (https://github.com/torvalds/linux/commit/9da75a511c55) — Toggle `netif_carrier_off/on` during XSK reconfig
- 7e3b407ccbea (https://github.com/torvalds/linux/commit/7e3b407ccbea) — Remove `ICE_CFG_BUSY` (never protected the queue pair)

All fix the original 2d4238f55697 ( https://github.com/torvalds/linux/commit/2d4238f55697) ("ice: Add support for AF_XDP").

Questions:

1. Are these fixes planned for any upcoming out-of-tree release (2.5.x or later)?
2. If so, what's the expected timeline?

We've validated that backporting these 4 commits onto ice 2.5.4 resolves the issue in our environment.

Environment: Intel E810, ice 2.2.8 (DKMS), kernel 5.10.253 (Amazon Linux 2), AF_XDP with 62 queues.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.