diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-06-01 21:35:14 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-06-01 21:35:14 +0200 |
| commit | 3e4c5a6261770bced301b5e74233e7866166ea5b (patch) | |
| tree | 9379fddaba693ef8a045da06efee8529baa5f6f4 /gitlab/issues_text/target_missing/host_missing/accel_missing/650 | |
| parent | e5634e2806195bee44407853c4bf8776f7abfa4f (diff) | |
| download | qemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.tar.gz qemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.zip | |
clean up repository
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/650 | 24 |
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. |