From: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
To: qemu-devel@nongnu.org
Cc: qemu-riscv@nongnu.org, alistair.francis@wdc.com,
bmeng@tinylab.org, liwei1518@gmail.com,
zhiwei_liu@linux.alibaba.com, palmer@rivosinc.com,
ajones@ventanamicro.com,
Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Subject: [PATCH 1/4] target/riscv/kvm: set 'aia_mode' to default in error path
Date: Tue, 24 Sep 2024 09:44:04 -0300 [thread overview]
Message-ID: <20240924124407.766495-2-dbarboza@ventanamicro.com> (raw)
In-Reply-To: <20240924124407.766495-1-dbarboza@ventanamicro.com>
When failing to set the selected AIA mode, 'aia_mode' is left untouched.
This means that 'aia_mode' will not reflect the actual AIA mode,
retrieved in 'default_aia_mode',
This is benign for now, but it will impact QMP query commands that will
expose the 'aia_mode' value, retrieving the wrong value.
Set 'aia_mode' to 'default_aia_mode' if we fail to change the AIA mode
in KVM.
While we're at it, rework the log/warning messages to be a bit less
verbose. Instead of:
KVM AIA: default mode is emul
qemu-system-riscv64: warning: KVM AIA: failed to set KVM AIA mode
We can use a single warning message:
qemu-system-riscv64: warning: KVM AIA: failed to set KVM AIA mode 'auto', using default host mode 'emul'
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
---
target/riscv/kvm/kvm-cpu.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
index 341af901c5..970a7ab2f1 100644
--- a/target/riscv/kvm/kvm-cpu.c
+++ b/target/riscv/kvm/kvm-cpu.c
@@ -1711,18 +1711,26 @@ void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
error_report("KVM AIA: failed to get current KVM AIA mode");
exit(1);
}
- qemu_log("KVM AIA: default mode is %s\n",
- kvm_aia_mode_str(default_aia_mode));
- if (default_aia_mode != aia_mode) {
+ if (default_aia_mode == aia_mode) {
+ qemu_log("KVM AIA: using default host mode '%s'\n",
+ kvm_aia_mode_str(default_aia_mode));
+ } else {
ret = kvm_device_access(aia_fd, KVM_DEV_RISCV_AIA_GRP_CONFIG,
KVM_DEV_RISCV_AIA_CONFIG_MODE,
&aia_mode, true, NULL);
- if (ret < 0)
- warn_report("KVM AIA: failed to set KVM AIA mode");
- else
- qemu_log("KVM AIA: set current mode to %s\n",
+ if (ret < 0) {
+ warn_report("KVM AIA: failed to set KVM AIA mode '%s', using "
+ "default host mode '%s'",
+ kvm_aia_mode_str(aia_mode),
+ kvm_aia_mode_str(default_aia_mode));
+
+ /* failed to change AIA mode, use default */
+ aia_mode = default_aia_mode;
+ } else {
+ qemu_log("KVM AIA: setting current mode to %s\n",
kvm_aia_mode_str(aia_mode));
+ }
}
ret = kvm_device_access(aia_fd, KVM_DEV_RISCV_AIA_GRP_CONFIG,
--
2.45.2
next prev parent reply other threads:[~2024-09-24 12:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-24 12:44 [PATCH 0/4] target/riscv/kvm: add riscv-aia bool props Daniel Henrique Barboza
2024-09-24 12:44 ` Daniel Henrique Barboza [this message]
2024-10-11 1:42 ` [PATCH 1/4] target/riscv/kvm: set 'aia_mode' to default in error path Alistair Francis
2024-09-24 12:44 ` [PATCH 2/4] target/riscv/kvm: clarify how 'riscv-aia' default works Daniel Henrique Barboza
2024-10-11 1:54 ` Alistair Francis
2024-09-24 12:44 ` [PATCH 3/4] target/riscv/kvm: add kvm-aia bools props Daniel Henrique Barboza
2024-10-11 1:57 ` Alistair Francis
2024-10-11 11:19 ` Daniel Henrique Barboza
2024-10-30 1:40 ` Alistair Francis
2024-10-31 13:50 ` Andrew Jones
2024-09-24 12:44 ` [PATCH 4/4] target/riscv/kvm: deprecate riscv-aia string prop Daniel Henrique Barboza
2024-10-28 18:00 ` [PATCH 0/4] target/riscv/kvm: add riscv-aia bool props Daniel Henrique Barboza
2024-10-30 1:44 ` Alistair Francis
2024-10-31 14:06 ` Andrew Jones
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=20240924124407.766495-2-dbarboza@ventanamicro.com \
--to=dbarboza@ventanamicro.com \
--cc=ajones@ventanamicro.com \
--cc=alistair.francis@wdc.com \
--cc=bmeng@tinylab.org \
--cc=liwei1518@gmail.com \
--cc=palmer@rivosinc.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=zhiwei_liu@linux.alibaba.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.