There are multiple unrelated patches failing in github action automated
testing. Not sure where this should live in Bugzilla, since not DTS but problem
with github action.

The root cause is that github container is deciding to pick up
the vdev_netvsc PMD when it should not.

Long winded AI details...

# eal_flags_vdev_opt_autotest failure on Azure/Hyper-V CI runners

## Summary

`eal_flags_vdev_opt_autotest` fails on GitHub Actions (Azure/Hyper-V VMs)
because `net_vdev_netvsc` auto-probes and crashes when a ring ethdev has
been created via the `nodeaction` parameter.

## Environment

- GitHub Actions runner (Azure Hyper-V VM)
- DPDK v26.03-rc1, shared library build
- VMBUS device present: `7ced8d63-dd7e-7ced-8d63-dd7e7ced8d63`
- PCI device: `c4c8:00:02.0` (mlx5)

## Details

The test spawns three child processes with `--no-huge`:

1. `--vdev eth_dummy` — correctly fails (invalid device) ✓
2. `--vdev net_ring0,args=test` — succeeds, exits cleanly ✓
3. `--vdev net_ring0,nodeaction=r1:0:CREATE` — child process crashes ✗

Because the runner is a Hyper-V VM, `vdev_netvsc_scan_callback` (triggered
by `RTE_INIT` when `rte_hypervisor_get() == RTE_HYPERVISOR_HYPERV`)
automatically injects `net_vdev_netvsc` as a vdev to probe alongside the
user-requested `net_ring0`.

In run 2, `args=test` is an unknown key — `net_ring0` creates a default
device and `net_vdev_netvsc` probes without issue.

In run 3, `nodeaction=r1:0:CREATE` causes `net_ring0` to create a named
ring ethdev via `eth_dev_ring_create()`. When `net_vdev_netvsc` then
auto-probes, it hits `rte_intr_fd_get: Interrupt instance unallocated`
and the child process dies (no EAL cleanup messages are printed, indicating
a crash rather than a graceful exit).

The same `rte_intr_fd_get` errors appear in run 2 but are non-fatal there,
suggesting the additional ethdev state from nodeaction CREATE triggers a
fatal code path in the netvsc/interrupt interaction.

## Suggested fixes

- Fix `net_vdev_netvsc` probe to handle unallocated interrupt instances
  gracefully instead of crashing.
- Alternatively, the test could suppress auto-probing by passing
  `--vdev=net_vdev_netvsc,ignore=1` to its child processes.

Reply via email to