summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/650
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues_text/target_missing/host_missing/accel_missing/650')
-rw-r--r--gitlab/issues_text/target_missing/host_missing/accel_missing/65024
1 files changed, 0 insertions, 24 deletions
diff --git a/gitlab/issues_text/target_missing/host_missing/accel_missing/650 b/gitlab/issues_text/target_missing/host_missing/accel_missing/650
deleted file mode 100644
index 96282cb94..000000000
--- a/gitlab/issues_text/target_missing/host_missing/accel_missing/650
+++ /dev/null
@@ -1,24 +0,0 @@
-Monitor device_add triggers deadlock when calling drain_call_rcu on QEMU >= 6.0.0
-Description of problem:
-It hangs
-Steps to 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 information:
-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.