diff options
Diffstat (limited to 'gitlab/issues/target_arm/host_arm/accel_missing')
4 files changed, 133 insertions, 0 deletions
diff --git a/gitlab/issues/target_arm/host_arm/accel_missing/1167.toml b/gitlab/issues/target_arm/host_arm/accel_missing/1167.toml new file mode 100644 index 000000000..61fa71238 --- /dev/null +++ b/gitlab/issues/target_arm/host_arm/accel_missing/1167.toml @@ -0,0 +1,15 @@ +id = 1167 +title = "Does qemu-system-aarch64 support hyper-v elightenment feature for windows for arm guest?" +state = "closed" +created_at = "2022-08-22T02:16:26.062Z" +closed_at = "2022-08-26T18:36:24.560Z" +labels = ["host: arm", "kind::Feature Request", "target: arm"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/1167" +host-os = "n/a" +host-arch = "n/a" +qemu-version = "n/a" +guest-os = "n/a" +guest-arch = "n/a" +description = "n/a" +reproduce = "n/a" +additional = "n/a" diff --git a/gitlab/issues/target_arm/host_arm/accel_missing/1776.toml b/gitlab/issues/target_arm/host_arm/accel_missing/1776.toml new file mode 100644 index 000000000..cba40af60 --- /dev/null +++ b/gitlab/issues/target_arm/host_arm/accel_missing/1776.toml @@ -0,0 +1,15 @@ +id = 1776 +title = "qemu-armel SEGFAULTs when trying to map a commpage on armel" +state = "closed" +created_at = "2023-07-21T15:29:42.247Z" +closed_at = "2023-08-24T12:02:03.890Z" +labels = ["host: arm", "kind::Bug", "linux-user", "target: arm"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/1776" +host-os = "n/a" +host-arch = "n/a" +qemu-version = "n/a" +guest-os = "n/a" +guest-arch = "n/a" +description = "n/a" +reproduce = "n/a" +additional = "n/a" diff --git a/gitlab/issues/target_arm/host_arm/accel_missing/1857.toml b/gitlab/issues/target_arm/host_arm/accel_missing/1857.toml new file mode 100644 index 000000000..57effb592 --- /dev/null +++ b/gitlab/issues/target_arm/host_arm/accel_missing/1857.toml @@ -0,0 +1,60 @@ +id = 1857 +title = "Major qemu-aarch64 performance slowdown since commit 59b6b42cd3" +state = "closed" +created_at = "2023-09-01T14:00:23.709Z" +closed_at = "2023-09-01T15:15:06.829Z" +labels = ["host: arm", "host: loongarch64", "target: arm"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/1857" +host-os = "Gentoo Linux & Ubuntu & Debian" +host-arch = "loongarch64 & aarch64 & x86_64" +qemu-version = "8.0.0, 8.1.0 and master" +guest-os = "Linux user" +guest-arch = "AArch64" +description = """I have observed a major performance slowdown between qemu 8.0.0 and 8.1.0: + + +qemu 8.0.0: 0.8s + +qemu 8.1.0: 6.8s + + +After bisecting the commits between 8.0.0 and 8.1.0, the offending commit is 59b6b42cd3: + + +commit 59b6b42cd3446862567637f3a7ab31d69c9bef51 +Author: Richard Henderson <richard.henderson@linaro.org> +Date: Tue Jun 6 10:19:39 2023 +0100 + + target/arm: Enable FEAT_LSE2 for -cpu max + + Reviewed-by: Peter Maydell <peter.maydell@linaro.org> + Signed-off-by: Richard Henderson <richard.henderson@linaro.org> + Message-id: 20230530191438.411344-21-richard.henderson@linaro.org + Signed-off-by: Peter Maydell <peter.maydell@linaro.org> + + +Reverting the commit in latest master fixes the problem: + +qemu 8.0.0: 0.8s + +qemu 8.1.0: 6.8s + +qemu master + revert 59b6b42cd3: 0.8s + +Alternatively, specify `-cpu cortex-a35` to disable LSE2: + +`time ./qemu-aarch64 -cpu cortex-a35`: 0.8s + +`time ./qemu-aarch64`: 6.77s + +The slowdown is also observed when running qemu-aarch64 on aarch64 machine: + +`time ./qemu-aarch64 /usr/bin/node -e 1`: 2.91s + +`time ./qemu-aarch64 -cpu cortex-a35 /usr/bin/node -e 1`: 1.77s + +The slowdown on x86_64 machine is small: 362ms -> 378ms.""" +reproduce = """1. Run `time ./qemu-aarch64 node-aarch64 -e 1` (node-aarch64 is NodeJS v16 built for AArch64) +2. Using qemu master, the output says `0.8s` +3. Using qemu master with commit 59b6b42cd3 reverted, the output says `6.77s`""" +additional = """""" diff --git a/gitlab/issues/target_arm/host_arm/accel_missing/2884.toml b/gitlab/issues/target_arm/host_arm/accel_missing/2884.toml new file mode 100644 index 000000000..9f9f7e14c --- /dev/null +++ b/gitlab/issues/target_arm/host_arm/accel_missing/2884.toml @@ -0,0 +1,43 @@ +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?""" |