diff options
Diffstat (limited to 'gitlab/issues/target_arm/host_arm/accel_missing/2884.toml')
| -rw-r--r-- | gitlab/issues/target_arm/host_arm/accel_missing/2884.toml | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/gitlab/issues/target_arm/host_arm/accel_missing/2884.toml b/gitlab/issues/target_arm/host_arm/accel_missing/2884.toml deleted file mode 100644 index 9f9f7e14..00000000 --- a/gitlab/issues/target_arm/host_arm/accel_missing/2884.toml +++ /dev/null @@ -1,43 +0,0 @@ -id = 2884 -title = "Questions about vfio-pci" -state = "opened" -created_at = "2025-03-27T09:32:21.969Z" -closed_at = "n/a" -labels = ["VFIO", "host: arm", "target: arm"] -url = "https://gitlab.com/qemu-project/qemu/-/issues/2884" -host-os = "n/a" -host-arch = "ARM" -qemu-version = "qemu v6.2.0 (qemu v8.2.0 also reproduces)" -guest-os = "n/a" -guest-arch = "n/a" -description = """When I use VFIO-PCI to pass through an hns3 device and load the driver to the VM to enable the hns3 network port, there is a possibility that the failure occurs.""" -reproduce = """1. Start the VM and load the hns3 driver. -2. enable net port - - `ifconfig eth0 10.10.10.10/24 up` -3. ping host - - `ping 10.10.10.11 -c 3`""" -additional = """I have the following findings: - -1. The problem can be reproduced in different kernel versions and QEMU versions. -2. The problem does not recur when the number of vCPUs is 1. -3. It is irrelevant to the GIC version. - -the hns3 relately logic: - -{width="394" height="285"} - -If the VM has two vCPUs, "ifconfig eth0 10.10.10.10/24 up" command performs two sequential enable_irq operations(vector_num=2). The enable_irq will trap into KVM for interrupt configuration and exit to QEMU for PCI device emulation. When emulating interrupt enabling in QEMU, vfio\\_\\[intx/msi/msix\\]\\_enable calls vfio_disable_interrupts to disable all interrupts on the vdev. - -{width="455" height="266"} - -vfio_disable_interrupts in QEMU calls the kernel vfio driver interface vfio_pci_set_irqs_ioctl - -{width="404" height="127"} - -dump stack as above. and then its_irq_domain_deactivate will call its_send_discard to discard the interrupt on the device. - -If an interrupt is handled after the first enable_irq but the second enable_irq discards it, this inconsistency leads to network port enablement failures. - -It puzzles me. why does the vfio-pci disable all interrupts of the device before enabling irqs?""" |