[PW_SID:1155011] KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump() - #2559
[PW_SID:1155011] KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()#2559linux-riscv-bot wants to merge 4 commits into
Conversation
Overflow status and restart masks are u64, but bits were built with BIT(). On RV32 that is an unsigned long shift, so indices >= 32 truncate or wrap and corrupt the mask. Use BIT_ULL() for those u64 bitops. Fixes: a862521 ("drivers/perf: riscv: Implement SBI PMU snapshot function") Assisted-by: DeepSeek:deepseek-v3 Signed-off-by: Xixin Liu <liuxixin@kylinos.cn> Link: https://patch.msgid.link/prpmask01bitul.v2.1786434000.git.liuxixin@kylinos.cn [pjw@kernel.org: updated to apply] Signed-off-by: Paul Walmsley <pjw@kernel.org>
The available-counter mask was a single unsigned long, but iteration uses RISCV_MAX_COUNTERS, which is 64. On RV32 that reads past the object. Filling with an unsigned-long bit at index 32 and above is also wrong. Use DECLARE_BITMAP and set_bit/bitmap helpers. Walk each bitmap word into CFG_MATCH when checking events, when allocating an index, and when stopping all counters. Set the counter base to i times BITS_PER_LONG. Share the CFG_MATCH ecall through a small helper so the 32-bit argument split is not duplicated. On qemu-system-riscv32 the probe bitmap has bits above XLEN set, so the first word alone is not enough. Fixes: e999143 ("RISC-V: Add perf platform driver based on SBI PMU extension") Assisted-by: DeepSeek:deepseek-v3 Signed-off-by: Xixin Liu <liuxixin@kylinos.cn> Link: https://patch.msgid.link/prpmask02cmap.v2.1786434000.git.liuxixin@kylinos.cn [pjw@kernel.org: updated to apply] Signed-off-by: Paul Walmsley <pjw@kernel.org>
vcpu_arch_dump() omits trap-related CSRs, making it hard to diagnose unexpected guest exceptions from the dump output alone. Print sepc, scause, and stval alongside the existing register dump. Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
|
Patch 1: "KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()" |
9ed823f to
a54e736
Compare
PR for series 1155011 applied to workflow__riscv__fixes
Name: KVM: riscv: selftests: Dump sepc/scause/stval on vcpu_arch_dump()
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1155011
Version: 1