On Mon, May 13, 2019 at 10:19:25AM -0700, Richard Henderson wrote: > On 5/12/19 1:36 AM, Andrew Jones wrote: > > @@ -292,7 +292,7 @@ static void aarch64_max_initfn(Object *obj) > > > > if (kvm_enabled()) { > > kvm_arm_set_cpu_features_from_host(cpu); > > - cpu->sve_max_vq = ARM_MAX_VQ; > > + cpu->sve_max_vq = -1; /* set in kvm_arch_init_vcpu() */ > > Perhaps a better comment is "unspecified, to be finalized in ..."
OK > > > + object_property_add(obj, "sve-max-vq", "uint32", cpu_max_get_sve_vq, > > + cpu_max_set_sve_vq, NULL, NULL, &error_fatal); > > as one can set it here, via the command-line. > > > @@ -644,6 +702,24 @@ int kvm_arch_init_vcpu(CPUState *cs) > > } > > > > if (cpu->sve_max_vq) { > > + uint64_t sve_vls[KVM_ARM64_SVE_VLS_WORDS]; > > + ret = kvm_arm_get_sve_vls(cs, sve_vls); > > + if (ret < 0) { > > + return ret; > > + } > > + if (cpu->sve_max_vq == -1) { > > + cpu->sve_max_vq = ret; > > You still cannot set a value larger than ARM_MAX_VQ, as that is the fixed > amount of space allocated within the cpu structure. > Good point. I should check against ARM_MAX_VQ here. Thanks, drew