[PATCH] hw/arm/virt: Extend nested and mte checks to hvf

Alexander Graf posted 1 patch 2 years, 5 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211123122859.22452-1-agraf@csgraf.de
Maintainers: Peter Maydell <peter.maydell@linaro.org>
hw/arm/virt.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
[PATCH] hw/arm/virt: Extend nested and mte checks to hvf
Posted by Alexander Graf 2 years, 5 months ago
The virt machine has properties to enable MTE and Nested Virtualization
support. However, its check to ensure the backing accel implementation
supports it today only looks for KVM and bails out if it finds it.

Extend the checks to HVF as well as it does not support either today.

Reported-by: saar amar <saaramar5@gmail.com>
Signed-off-by: Alexander Graf <agraf@csgraf.de>
---
 hw/arm/virt.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 369552ad45..30da05dfe0 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -49,6 +49,7 @@
 #include "sysemu/runstate.h"
 #include "sysemu/tpm.h"
 #include "sysemu/kvm.h"
+#include "sysemu/hvf.h"
 #include "hw/loader.h"
 #include "qapi/error.h"
 #include "qemu/bitops.h"
@@ -1969,15 +1970,17 @@ static void machvirt_init(MachineState *machine)
         exit(1);
     }
 
-    if (vms->virt && kvm_enabled()) {
-        error_report("mach-virt: KVM does not support providing "
-                     "Virtualization extensions to the guest CPU");
+    if (vms->virt && (kvm_enabled() || hvf_enabled())) {
+        error_report("mach-virt: %s does not support providing "
+                     "Virtualization extensions to the guest CPU",
+                     kvm_enabled() ? "KVM" : "HVF");
         exit(1);
     }
 
-    if (vms->mte && kvm_enabled()) {
-        error_report("mach-virt: KVM does not support providing "
-                     "MTE to the guest CPU");
+    if (vms->mte && (kvm_enabled() || hvf_enabled())) {
+        error_report("mach-virt: %s does not support providing "
+                     "MTE to the guest CPU",
+                     kvm_enabled() ? "KVM" : "HVF");
         exit(1);
     }
 
-- 
2.30.1 (Apple Git-130)


Re: [PATCH] hw/arm/virt: Extend nested and mte checks to hvf
Posted by Peter Maydell 2 years, 5 months ago
On Tue, 23 Nov 2021 at 12:29, Alexander Graf <agraf@csgraf.de> wrote:
>
> The virt machine has properties to enable MTE and Nested Virtualization
> support. However, its check to ensure the backing accel implementation
> supports it today only looks for KVM and bails out if it finds it.
>
> Extend the checks to HVF as well as it does not support either today.
>
> Reported-by: saar amar <saaramar5@gmail.com>
> Signed-off-by: Alexander Graf <agraf@csgraf.de>

Without this check, what happens if you try to enable
both eg virtualization and hvf? Crash, unhelpful error
message, something else?

thanks
-- PMM

Re: [PATCH] hw/arm/virt: Extend nested and mte checks to hvf
Posted by Alexander Graf 2 years, 5 months ago
On 23.11.21 13:34, Peter Maydell wrote:
> On Tue, 23 Nov 2021 at 12:29, Alexander Graf <agraf@csgraf.de> wrote:
>> The virt machine has properties to enable MTE and Nested Virtualization
>> support. However, its check to ensure the backing accel implementation
>> supports it today only looks for KVM and bails out if it finds it.
>>
>> Extend the checks to HVF as well as it does not support either today.
>>
>> Reported-by: saar amar <saaramar5@gmail.com>
>> Signed-off-by: Alexander Graf <agraf@csgraf.de>
> Without this check, what happens if you try to enable
> both eg virtualization and hvf? Crash, unhelpful error
> message, something else?


The guest just never gets either feature enabled. No crash, no error 
message.


Alex



Re: [PATCH] hw/arm/virt: Extend nested and mte checks to hvf
Posted by Peter Maydell 2 years, 5 months ago
On Tue, 23 Nov 2021 at 14:00, Alexander Graf <agraf@csgraf.de> wrote:
>
>
> On 23.11.21 13:34, Peter Maydell wrote:
> > On Tue, 23 Nov 2021 at 12:29, Alexander Graf <agraf@csgraf.de> wrote:
> >> The virt machine has properties to enable MTE and Nested Virtualization
> >> support. However, its check to ensure the backing accel implementation
> >> supports it today only looks for KVM and bails out if it finds it.
> >>
> >> Extend the checks to HVF as well as it does not support either today.
> >>
> >> Reported-by: saar amar <saaramar5@gmail.com>
> >> Signed-off-by: Alexander Graf <agraf@csgraf.de>
> > Without this check, what happens if you try to enable
> > both eg virtualization and hvf? Crash, unhelpful error
> > message, something else?
>
>
> The guest just never gets either feature enabled. No crash, no error
> message.

Thanks; I've added that info to the commit message and applied this
to target-arm.next for 6.2.

-- PMM