diff options
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/650.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/650.toml | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/650.toml b/gitlab/issues/target_missing/host_missing/accel_missing/650.toml deleted file mode 100644 index 97a0e095..00000000 --- a/gitlab/issues/target_missing/host_missing/accel_missing/650.toml +++ /dev/null @@ -1,32 +0,0 @@ -id = 650 -title = "Monitor device_add triggers deadlock when calling drain_call_rcu on QEMU >= 6.0.0" -state = "closed" -created_at = "2021-09-30T12:31:08.233Z" -closed_at = "2022-01-25T09:06:57.879Z" -labels = ["Regression", "Stable::to backport", "kind::Bug"] -url = "https://gitlab.com/qemu-project/qemu/-/issues/650" -host-os = "Debian bullseye/sid" -host-arch = "amd64" -qemu-version = "6.1.50 (v6.1.0-936-gba0fa56bc0)" -guest-os = "n/a" -guest-arch = "n/a" -description = """It hangs""" -reproduce = """1. Run the QEMU: - ``` - ./qemu-system-mips64 -nographic - ``` -2. Enter into the QEMU monitor: press ctrl-a c -3. Execute command `device_add` without arguments: -``` -(qemu) device_add -``` -4. It hangs so bad that only `kill -9` helps""" -additional = """I didn't test versions between 4.2.0 and 6.0.0, but I can confirm that 6.0.0, 6.1.0 and the latest master pull have this bug, while version 4.2.0 doesn't have it. - -I've tracked the problem and found this. - -1. Command `device_add` calls function `drain_call_rcu`. `drain_call_rcu` waits indefinitely for drain_complete_event. -2. Function `cpu_exec` in accel/tcg/cpu-exec.c calls `rcu_read_lock` but does not call `rcu_read_unlock()`. `cpu_exec` just spins in its inner loop. -3. Function `call_rcu_thread` hanged in calling the `synchronize_rcu` which calls `wait_for_readers`. - -If I execute `stop` command in QEMU monitor before calling `device_add` command, no hang happen.""" |