Bug ID 1738
Summary bus/pci: Secondary process initialization kills non-DPDK network interfaces
Product DPDK
Version 25.03
Hardware x86
OS Linux
Status UNCONFIRMED
Severity major
Priority Normal
Component core
Assignee dev@dpdk.org
Reporter yonig@radcom.com
Target Milestone ---

On a system with one virtio interface bound to vfio-pci and additional virtio
interfaces bound to the kernel driver: Starting a secondary DPDK process (with
a -a flag specifying the pci address bound to vfio) causes all the kernel
network interfaces to stop working, requiring a reboot.

This behavior is reproduced on a specific environment consisting of several
VMs, but we have been unable to reproduce it on other environments, which also
use virtio and the same kernel version.

Steps to Reproduce:
./dpdk-testpmd -l 4,5 -n 4 -a 0000:00:04.0 --proc-type=primary -- -i
./dpdk-testpmd -l 6,7 -n 4 -a 0000:00:04.0 --proc-type=secondary -- -i

This happens on all dpdk versions starting at 24.3.

I have narrowed the cause down to the following two commits:
4b741542ecde  - bus/pci: avoid depending on private kernel value
647a0a6ecb04  - bus/pci: fix VFIO region info in secondary process

Without these commits there is no issue. With only 4b741542ecde, there is an
error in the secondary process initialization (virtio_pci_init(): failed to
remap pci device). With both commits, the network dies during secondary process
initialization.

The kernel log contains lines such as:
kernel: NETDEV WATCHDOG: ens3 (virtio_net): transmit queue 0 timed out
...
kernel: virtio_net virtio0 ens3: TX timeout on queue: 0, sq: output.0, vq: 0x1,
name: output.0, 5286000 usecs ago


Kernel version: kernel 5.14.0-362.8.1.el9_3.x86_64
          


You are receiving this mail because: