[PATCH 2/4] target/riscv/kvm: clarify how 'riscv-aia' default works

Daniel Henrique Barboza posted 4 patches 4 weeks ago
[PATCH 2/4] target/riscv/kvm: clarify how 'riscv-aia' default works
Posted by Daniel Henrique Barboza 4 weeks ago
We do not have control in the default 'riscv-aia' default value. We can
try to set it to a specific value, in this case 'auto', but there's no
guarantee that the host will accept it.

Couple with this we're always doing a 'qemu_log' to inform whether we're
ended up using the host default or if we managed to set the AIA mode to
the QEMU default we wanted to set.

Change the 'riscv-aia' description to better reflect how the option
works, and remove the two informative 'qemu_log' that are now unneeded:
if no message shows, riscv-aia was set to the default or uset-set value.

Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
---
 target/riscv/kvm/kvm-cpu.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
index 970a7ab2f1..32f3dd6a43 100644
--- a/target/riscv/kvm/kvm-cpu.c
+++ b/target/riscv/kvm/kvm-cpu.c
@@ -1676,9 +1676,9 @@ void kvm_arch_accel_class_init(ObjectClass *oc)
     object_class_property_add_str(oc, "riscv-aia", riscv_get_kvm_aia,
                                   riscv_set_kvm_aia);
     object_class_property_set_description(oc, "riscv-aia",
-                                          "Set KVM AIA mode. Valid values are "
-                                          "emul, hwaccel, and auto. Default "
-                                          "is auto.");
+        "Set KVM AIA mode. Valid values are 'emul', 'hwaccel' and 'auto'. "
+        "Changing KVM AIA modes relies on host support. Defaults to 'auto' "
+        "if the host supports it");
     object_property_set_default_str(object_class_property_find(oc, "riscv-aia"),
                                     "auto");
 }
@@ -1712,10 +1712,7 @@ void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
         exit(1);
     }
 
-    if (default_aia_mode == aia_mode) {
-        qemu_log("KVM AIA: using default host mode '%s'\n",
-                  kvm_aia_mode_str(default_aia_mode));
-    } else {
+    if (default_aia_mode != aia_mode) {
         ret = kvm_device_access(aia_fd, KVM_DEV_RISCV_AIA_GRP_CONFIG,
                                 KVM_DEV_RISCV_AIA_CONFIG_MODE,
                                 &aia_mode, true, NULL);
@@ -1727,9 +1724,6 @@ void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
 
             /* 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));
         }
     }
 
-- 
2.45.2
Re: [PATCH 2/4] target/riscv/kvm: clarify how 'riscv-aia' default works
Posted by Alistair Francis 1 week, 4 days ago
On Tue, Sep 24, 2024 at 10:46 PM Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
> We do not have control in the default 'riscv-aia' default value. We can
> try to set it to a specific value, in this case 'auto', but there's no
> guarantee that the host will accept it.
>
> Couple with this we're always doing a 'qemu_log' to inform whether we're
> ended up using the host default or if we managed to set the AIA mode to
> the QEMU default we wanted to set.
>
> Change the 'riscv-aia' description to better reflect how the option
> works, and remove the two informative 'qemu_log' that are now unneeded:
> if no message shows, riscv-aia was set to the default or uset-set value.
>
> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

Acked-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  target/riscv/kvm/kvm-cpu.c | 14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)
>
> diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
> index 970a7ab2f1..32f3dd6a43 100644
> --- a/target/riscv/kvm/kvm-cpu.c
> +++ b/target/riscv/kvm/kvm-cpu.c
> @@ -1676,9 +1676,9 @@ void kvm_arch_accel_class_init(ObjectClass *oc)
>      object_class_property_add_str(oc, "riscv-aia", riscv_get_kvm_aia,
>                                    riscv_set_kvm_aia);
>      object_class_property_set_description(oc, "riscv-aia",
> -                                          "Set KVM AIA mode. Valid values are "
> -                                          "emul, hwaccel, and auto. Default "
> -                                          "is auto.");
> +        "Set KVM AIA mode. Valid values are 'emul', 'hwaccel' and 'auto'. "
> +        "Changing KVM AIA modes relies on host support. Defaults to 'auto' "
> +        "if the host supports it");
>      object_property_set_default_str(object_class_property_find(oc, "riscv-aia"),
>                                      "auto");
>  }
> @@ -1712,10 +1712,7 @@ void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
>          exit(1);
>      }
>
> -    if (default_aia_mode == aia_mode) {
> -        qemu_log("KVM AIA: using default host mode '%s'\n",
> -                  kvm_aia_mode_str(default_aia_mode));
> -    } else {
> +    if (default_aia_mode != aia_mode) {
>          ret = kvm_device_access(aia_fd, KVM_DEV_RISCV_AIA_GRP_CONFIG,
>                                  KVM_DEV_RISCV_AIA_CONFIG_MODE,
>                                  &aia_mode, true, NULL);
> @@ -1727,9 +1724,6 @@ void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
>
>              /* 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));
>          }
>      }
>
> --
> 2.45.2
>
>