summaryrefslogtreecommitdiffstats
path: root/gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-05-21 21:21:26 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-05-21 21:21:26 +0200
commit4b927bc37359dec23f67d3427fc982945f24f404 (patch)
tree245449ef9146942dc7fffd0235b48b7e70a00bf2 /gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml
parentaa8bd79cec7bf6790ddb01d156c2ef2201abbaab (diff)
downloademulator-bug-study-4b927bc37359dec23f67d3427fc982945f24f404.tar.gz
emulator-bug-study-4b927bc37359dec23f67d3427fc982945f24f404.zip
add gitlab issues in toml format
Diffstat (limited to 'gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml')
-rw-r--r--gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml41
1 files changed, 41 insertions, 0 deletions
diff --git a/gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml b/gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml
new file mode 100644
index 00000000..7723e09a
--- /dev/null
+++ b/gitlab/issues/target_riscv/host_missing/accel_missing/1688.toml
@@ -0,0 +1,41 @@
+id = 1688
+title = "target/riscv KVM_RISCV_SET_TIMER macro is not configured correctly"
+state = "closed"
+created_at = "2023-06-06T08:51:28.349Z"
+closed_at = "2023-07-10T22:58:39.120Z"
+labels = ["target: riscv", "workflow::Triaged"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1688"
+host-os = "Linux"
+host-arch = "X86"
+qemu-version = "QEMU emulator version 7.2.50 (v7.2.0-333-g222059a0fc)"
+guest-os = "Linux"
+guest-arch = "RISCV"
+description = """When riscv kvm vm state changed, guest virtual time would stop/continue. But KVM_RISCV_SET_TIMER is wrong, qemu-kvm can only set 'time'."""
+reproduce = """1.start host kernel
+2.start qemu-kvm"""
+additional = """Below code has some probelm:
+```
+===================================================================
+#define KVM_RISCV_SET_TIMER(cs, env, name, reg) \\
+ do { \\
+ int ret = kvm_set_one_reg(cs, RISCV_TIMER_REG(env, time), &reg); \\
+
+===================================================================
+```
+I think it should be like this:
+
+```
+diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c
+index 30f21453d6..0c567f668c 100644
+--- a/target/riscv/kvm.c
++++ b/target/riscv/kvm.c
+@@ -99,7 +99,7 @@ static uint64_t kvm_riscv_reg_id(CPURISCVState *env, uint64_t type,
+
+ #define KVM_RISCV_SET_TIMER(cs, env, name, reg) \\
+ do { \\
+- int ret = kvm_set_one_reg(cs, RISCV_TIMER_REG(env, time), &reg); \\
++ int ret = kvm_set_one_reg(cs, RISCV_TIMER_REG(env, name), &reg); \\
+ if (ret) { \\
+ abort(); \\
+ } \\
+```"""