From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
qemu-devel@nongnu.org, qemu-arm@nongnu.org,
kvmarm@lists.linux.dev, peter.maydell@linaro.org,
shaju.abraham@nutanix.com, khushit.shah@nutanix.com,
yangjinqian1@huawei.com, cohuck@redhat.com,
richard.henderson@linaro.org, sebott@redhat.com,
skolothumtho@nvidia.com, philmd@oss.qualcomm.com
Cc: maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com,
armbru@redhat.com, berrange@redhat.com, abologna@redhat.com,
jdenemar@redhat.com
Subject: [RFC PATCH v7 15/18] target/arm/kvm: Ignore and trace unexpected writable reserved fields
Date: Sun, 26 Jul 2026 17:29:53 +0200 [thread overview]
Message-ID: <20260726153221.24773-16-eric.auger@redhat.com> (raw)
In-Reply-To: <20260726153221.24773-1-eric.auger@redhat.com>
KVM currently reports some bits as writable whereas they are
RES0 or RAZ. The code easily allows to do some sanity checking
for such inconsistencies. Let's add a trace event when this is
encountered and skip the field
Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
target/arm/kvm.c | 8 ++++++++
target/arm/trace-events | 1 +
2 files changed, 9 insertions(+)
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 1a78893f87..fceffee262 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -434,6 +434,14 @@ decode_idreg_writemap(Object *obj, ARM64SysReg *reg)
}
lower = field->shift;
upper = field->shift + field->length - 1;
+
+ /* Sanity check the field is not a reserved field */
+ if (strstr(field->name, "RES0") || strstr(field->name, "RES1") ||
+ strstr(field->name, "RAZ")) {
+ trace_unexpected_writable_reserved_field(reg->name, field->name,
+ lower, upper);
+ continue;
+ }
prop_name = g_strdup_printf("SYSREG_%s_%s", reg->name, field->name);
trace_decode_idreg_writemap(field->name, lower, upper, prop_name);
object_property_add(obj, prop_name, "uint64",
diff --git a/target/arm/trace-events b/target/arm/trace-events
index d72ad6b671..e67730de6b 100644
--- a/target/arm/trace-events
+++ b/target/arm/trace-events
@@ -19,6 +19,7 @@ decode_idreg_writemap(const char* name, int lower, int upper, char *prop_name) "
get_sysreg_prop(const char *name, uint64_t value) "%s 0x%"PRIx64
set_sysreg_prop(const char *name, uint64_t old, uint64_t mask, uint64_t field_value, uint64_t new) "%s old reg value=0x%"PRIx64" mask=0x%"PRIx64" new field value=0x%"PRIx64" new reg value=0x%"PRIx64
nb_sysreg_props(const char *name, int count) "%s: %d SYSREG properties"
+unexpected_writable_reserved_field(const char *reg_name, const char *field_name, int lower, int upper) "Unexpected writable reserved field: %s.%s [%d,%d], skip it ..."
# cpu.c
arm_cpu_reset(uint64_t mp_aff) "cpu %" PRIu64
--
2.53.0
next prev parent reply other threads:[~2026-07-26 15:35 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-26 15:29 [RFC PATCH v7 00/18] kvm/arm: Introduce a customizable aarch64 KVM host model Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 01/18] scripts: introduce scripts/update-aarch64-cpu-sysregs-header.py Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 02/18] target/arm/cpu-sysregs.h.inc: Sort by name alphabetical order Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 03/18] target/arm/cpu-sysregs.h.inc: Update with automatic generation Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 04/18] arm/cpu: Add infra to handle generated ID register definitions Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 05/18] scripts: Introduce scripts/aarch64_sysreg_helpers module Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 06/18] scripts: Introduce scripts/update-aarch64-cpu-sysreg-properties.py Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 07/18] target/arm/cpu-idregs.h.inc: generate with script Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 08/18] target/arm/cpu-idregs.h.inc: Generate enum values Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 09/18] target/arm/cpu_idregs: generate tables for Arm64 ID registers and fields Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 10/18] target/arm/kvm: Retrieve writable ID reg map Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 11/18] arm/kvm: Initialize all writable ID registers from host Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 12/18] target/arm/kvm: Introduce kvm_arm_expose_idreg_properties Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 13/18] target/arm/cpu: Expose writable ID reg field properties on the kvm host vcpu model Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 14/18] target/arm/cpu-idregs.h.inc: Generate reserved fields Eric Auger
2026-07-26 15:29 ` Eric Auger [this message]
2026-07-26 15:29 ` [RFC PATCH v7 16/18] arm/cpu-features: document ID reg properties Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 17/18] target/arm/kvm: add utility to write idregs in scratch vcpu Eric Auger
2026-07-26 15:29 ` [RFC PATCH v7 18/18] arm-qmp-cmds: introspection for ID register props Eric Auger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260726153221.24773-16-eric.auger@redhat.com \
--to=eric.auger@redhat.com \
--cc=abologna@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=cohuck@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=jdenemar@redhat.com \
--cc=khushit.shah@nutanix.com \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@oss.qualcomm.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sebott@redhat.com \
--cc=shaju.abraham@nutanix.com \
--cc=skolothumtho@nvidia.com \
--cc=yangjinqian1@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.