On Wed, Jul 03, 2019 at 12:04:11PM +0000, Zhang, Lei wrote: > Hi guys, > > I can't start up KVM guest os with SVE feature with your patch. > The error message is > qemu-system-aarch64: kvm_init_vcpu failed: Invalid argument. > > My test enviroment. > kernel linux-5.2-rc6 > qemu [Qemu-devel] [PATCH v2 00/14] target/arm/kvm: enable SVE in guests https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg04945.html > KVM start up option > -machine virt,gic-version=host,accel=kvm \ > -cpu host \ > -machine type=virt \ > -nographic \ > -smp 16 \ -m 4096 \ > -drive if=none,file=/root/image.qcow2,id=hd0,format=qcow2 \ > -device virtio-blk-device,drive=hd0 \ > -netdev user,id=mynet0,restrict=off,hostfwd=tcp::38001-:22 \ > -device virtio-net-device,netdev=mynet0 \ > -bios /root/QEMU_EFI.fd > > sve_vq_available function's return value' type is bool. > But vq_present is macro, so the value is not only TRUE, FALSE but also some numbers. > So It failed at > if (vq_present(vqs, vq) != sve_vq_available(vq)). > I think it is nessary to make vq_present macro's value only TRUE and FALSE. > > arch/arm64/kvm/guest.c > static int set_sve_vls(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg) > for (vq = SVE_VQ_MIN; vq <= max_vq; ++vq) > if (vq_present(vqs, vq) != sve_vq_available(vq)) // It failed at here. > return -EINVAL; > > My patch as follows. > I have started up KVM guest os successfully with SVE feature with this patch. > > Could you review and merge my patch? [...] Thanks for reporting this! It looks like we didn't realise we dropped the implicit cast to bool when the result was returned from the original version of vq_present(). Your fix looks sensible to me. For the future, see Documentation/process/submitting-patches.rst for guidance on how to prepare a patch for submission. However, due to the fact that we're already at -rc7 I've written a commit message for the patch and reposted [1]. Since the fix is yours, I'll keep your authorship and S-o-B. Please retest when you can (though the diff should be the same). Note, your mail seems to be corrupted, but since the diff is a one-line fix, I'm pretty confident I decoded it correctly. If anything looks wrong, please let me know. [...] Cheers ---Dave [1] [PATCH] KVM: arm64/sve: Fix vq_present() macro to yield a bool http://lists.infradead.org/pipermail/linux-arm-kernel/2019-July/664745.html _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm