> On 6. Mar 2026, at 12:49, Manos Pitsidianakis > <[email protected]> wrote: > > On Fri, Mar 6, 2026 at 1:14 PM Peter Maydell <[email protected]> wrote: >> >> On Fri, 6 Mar 2026 at 10:19, Mohamed Mediouni <[email protected]> >> wrote: >>>> On 6. Mar 2026, at 11:05, Manos Pitsidianakis >>>> <[email protected]> wrote: >>>> >>>> On Fri, Mar 6, 2026 at 11:48 AM Peter Maydell <[email protected]> >>>> wrote: >>>>> While you're retesting, could you also look at / test patches >>>>> 17 and 18 in Mohamed's series >>>>> https://lore.kernel.org/qemu-devel/[email protected]/T/#m2d1e3dfbfa5aecd41af6c0aa9e3b574a72c6f04d >>>>> >>>>> ? >>>>> >>>>> They look to me like bugfixes that we should be squashing/including >>>>> in the "enable SME2 for hvf" handling. >>>> >>>> Had a quick look, 17 seems to be nested-virt specific so not a bugfix >>>> if nested-virt was not already supported in the first place, right? >>> >>> Hello, >>> >>> This part isn’t: >>> >>> @@ -1370,16 +1373,22 @@ int hvf_arch_init_vcpu(CPUState *cpu) >>> arm_cpu->cpreg_indexes[sregs_cnt++] = kvm_id; >>> } >>> } >>> - if (__builtin_available(macOS 15.2, *)) { >>> - for (i = 0; i < ARRAY_SIZE(hvf_sreg_list_sme2); i++) { >>> - hv_sys_reg_t hvf_id = hvf_sreg_list_sme2[i].sreg; >>> - uint64_t kvm_id = HVF_TO_KVMID(hvf_id); >>> - uint32_t key = kvm_to_cpreg_id(kvm_id); >>> - const ARMCPRegInfo *ri = get_arm_cp_reginfo(arm_cpu->cp_regs, key); >>> - >>> - if (ri) { >>> - assert(!(ri->type & ARM_CP_NO_RAW)); >>> - arm_cpu->cpreg_indexes[sregs_cnt++] = kvm_id; >>> + if (hvf_arm_sme2_supported()) { >>> + /* >>> + * Clang doesn't allow us to combine the two checks together. >>> + * -Wunsupported-availability-guard >>> + */ >>> + if (__builtin_available(macOS 15.2, *)) { >>> + for (i = 0; i < ARRAY_SIZE(hvf_sreg_list_sme2); i++) { >>> + hv_sys_reg_t hvf_id = hvf_sreg_list_sme2[i].sreg; >>> + uint64_t kvm_id = HVF_TO_KVMID(hvf_id); >>> + uint32_t key = kvm_to_cpreg_id(kvm_id); >>> + const ARMCPRegInfo *ri = get_arm_cp_reginfo(arm_cpu->cp_regs, key); >>> + >>> + if (ri) { >>> + assert(!(ri->type & ARM_CP_NO_RAW)); >>> + arm_cpu->cpreg_indexes[sregs_cnt++] = kvm_id; >>> + } >>> } >> >> Yes; the patch is doing two things and really ought to be two patches, >> so we can put the bit that we need for "make SME2 hvf work correctly" >> before the "enable SME2 HVF" patch, and the bit that is nested-virt >> specific in the nested-virt patches. >> > > Patch v18 needs an adjustment, because clang prints warnings about the > `static const struct sme_isar_regs` array. > Hello,
Put an updated version of my branch to https://github.com/mediouni-m/qemu/commits/hvf-irqchip-and-nested/ Feel free to pick the needed patches from it/squash as needed :) > > ../target/arm/hvf/hvf.c:1098:11: warning: > 'HV_FEATURE_REG_ID_AA64SMFR0_EL1' is only available on macOS 15.2 or > newer [-Wunguarded-availability-new] > > Peter, > > Maybe I should send a new revision since you haven't merged these > patches anyway? > >> thanks >> -- PMM > > -- > Manos Pitsidianakis > Emulation and Virtualization Engineer at Linaro Ltd
