qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Mohamed Mediouni <mohamed@unpredictable.fr>, qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Shannon Zhao <shannon.zhaosl@gmail.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Ani Sinha <anisinha@redhat.com>,
	qemu-arm@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Phil Dennis-Jordan <phil@philjordan.eu>,
	Alexander Graf <agraf@csgraf.de>, Mads Ynddal <mads@ynddal.dk>,
	Cameron Esfahani <dirty@apple.com>
Subject: Re: [PATCH v6 05/13] hw/arm, target/arm: nested virtualisation on HVF
Date: Mon, 11 Aug 2025 15:13:57 +0200	[thread overview]
Message-ID: <7de5cc4e-474c-4e42-ae60-70d1fafa837f@linaro.org> (raw)
In-Reply-To: <caeafe09-4c2c-48bf-9f46-f6e739931b26@linaro.org>

On 11/8/25 14:56, Philippe Mathieu-Daudé wrote:
> On 8/8/25 09:01, Mohamed Mediouni wrote:
>> Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr>
>> ---
>>   hw/arm/virt.c         |  9 ++++++---
>>   target/arm/hvf-stub.c | 15 +++++++++++++++
>>   target/arm/hvf/hvf.c  | 41 +++++++++++++++++++++++++++++++++++++++--
>>   target/arm/hvf_arm.h  |  3 +++
>>   4 files changed, 63 insertions(+), 5 deletions(-)
>>
>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
>> index 59e6c2b9df..91d8cd9363 100644
>> --- a/hw/arm/virt.c
>> +++ b/hw/arm/virt.c
>> @@ -817,8 +817,7 @@ static void create_gic(VirtMachineState *vms, 
>> MemoryRegion *mem)
>>           g_assert_not_reached();
>>       }
>> -    if (kvm_enabled() && vms->virt &&
>> -        (revision != 3 || !kvm_irqchip_in_kernel())) {
>> +    if (kvm_enabled() && vms->virt && (revision != 3 || ! 
>> kvm_irqchip_in_kernel())) {
>>           error_report("KVM EL2 is only supported with in-kernel GICv3");
>>           exit(1);
>>       }
>> @@ -2281,7 +2280,8 @@ static void machvirt_init(MachineState *machine)
>>           exit(1);
>>       }
>> -    if (vms->virt && !kvm_enabled() && !tcg_enabled() && ! 
>> qtest_enabled()) {
>> +    if (vms->virt && !kvm_enabled() && !tcg_enabled()
>> +       && !hvf_enabled() && !qtest_enabled()) {
>>           error_report("mach-virt: %s does not support providing "
>>                        "Virtualization extensions to the guest CPU",
>>                        current_accel_name());
>> @@ -2553,6 +2553,9 @@ static void virt_set_virt(Object *obj, bool 
>> value, Error **errp)
>>       VirtMachineState *vms = VIRT_MACHINE(obj);
>>       vms->virt = value;
>> +#if defined(CONFIG_HVF) && defined(__aarch64__)
>> +    hvf_arm_el2_enable(value);
>> +#endif
>>   }

> We don't have hvf_arm_el1_enable(). I think we just want to always
> provide the most performant configuration to users.
> IOW, we don't need hvf_arm_el2_enable(). I'd just always enable EL2
> (if supported) in hvf_arm_get_host_cpu_features().

We create vCPUs in machvirt_init(). Upon vCPU INITialization, we check
host features. Then during REALIZation, we check the QOM properties.
If 'virt' flag is disabled, machvirt_init() sets "has_el2" property
to false, effectively setting ARMCPU::has_el2 field to %false.
In arm_cpu_realizefn(), if ARMCPU::has_el2 we unset ARM_FEATURE_EL2.


  reply	other threads:[~2025-08-11 13:15 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-08  7:01 [PATCH v6 00/13] HVF: Add support for platform vGIC and nested virtualisation Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 01/13] hw/arm: virt: add GICv2m for the case when ITS is not available Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 02/13] hvf: switch hvf_arm_get_host_cpu_features to not create a vCPU Mohamed Mediouni
2025-08-20 12:29   ` Mads Ynddal
2025-08-08  7:01 ` [PATCH v6 03/13] accel, hw/arm, include/system/hvf: infrastructure changes for HVF vGIC Mohamed Mediouni
2025-08-12 13:05   ` Philippe Mathieu-Daudé
2025-08-08  7:01 ` [PATCH v6 04/13] hw/intc: Add hvf vGIC interrupt controller support Mohamed Mediouni
2025-08-12 16:19   ` Philippe Mathieu-Daudé
2025-08-14 12:57   ` Mads Ynddal
2025-08-15  5:55     ` Mohamed Mediouni
2025-08-19 13:21       ` Mads Ynddal
2025-08-08  7:01 ` [PATCH v6 05/13] hw/arm, target/arm: nested virtualisation on HVF Mohamed Mediouni
2025-08-11 12:47   ` Philippe Mathieu-Daudé
2025-08-11 13:35     ` Mohamed Mediouni
2025-08-11 13:40       ` Philippe Mathieu-Daudé
2025-08-11 12:56   ` Philippe Mathieu-Daudé
2025-08-11 13:13     ` Philippe Mathieu-Daudé [this message]
2025-08-11 13:35     ` Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 06/13] hvf: save/restore Apple GIC state Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 07/13] target/arm: hvf: pass through CNTHCTL_EL2 and MDCCINT_EL1 Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 08/13] hw/arm: virt: cleanly fail on attempt to use the platform vGIC together with ITS Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 09/13] hvf: only call hvf_sync_vtimer() when running without the platform vGIC Mohamed Mediouni
2025-08-19 12:37   ` Mads Ynddal
2025-08-08  7:01 ` [PATCH v6 10/13] hvf: sync registers used at EL2 Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 11/13] hvf: gate ARM_FEATURE_PMU register emulation behind not being " Mohamed Mediouni
2025-08-08  7:01 ` [PATCH v6 12/13] target/arm: hvf: instantiate GIC early Mohamed Mediouni
2025-08-14 13:06   ` Mads Ynddal
2025-08-08  7:01 ` [PATCH v6 13/13] target/arm: hvf: add asserts for code paths not leveraged when using the vGIC Mohamed Mediouni
2025-08-19 12:22   ` Mads Ynddal

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=7de5cc4e-474c-4e42-ae60-70d1fafa837f@linaro.org \
    --to=philmd@linaro.org \
    --cc=agraf@csgraf.de \
    --cc=anisinha@redhat.com \
    --cc=dirty@apple.com \
    --cc=imammedo@redhat.com \
    --cc=mads@ynddal.dk \
    --cc=mohamed@unpredictable.fr \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=phil@philjordan.eu \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rbolshakov@ddn.com \
    --cc=shannon.zhaosl@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).