Re: [PATCH v2 2/2] arm64: kvm: Introduce MTE VCPU feature
From: Andrew Jones <hidden>
Date: 2020-09-10 10:01:26
Also in:
kvmarm, lkml, qemu-devel
On Thu, Sep 10, 2020 at 08:38:54AM +0200, Andrew Jones wrote:
On Wed, Sep 09, 2020 at 04:53:02PM +0100, Peter Maydell wrote:quoted
On Wed, 9 Sep 2020 at 16:48, Andrew Jones [off-list ref] wrote:quoted
We either need a KVM cap or a new CPU feature probing interface to avoid making userspace try features one at a time. It's too bad that VCPU_INIT doesn't clear all offending features from the feature set when returning EINVAL, because then userspace could create a scratch VCPU with everything it supports in order to see what KVM also supports in one go.You could add one if you wanted -- add a new feature bit TELL_ME_WHAT_YOU_HAVE. If the kernel sees that then on filure it clears out feature bits it doesn't support and also clears TELL_ME_WHAT_YOU_HAVE. If QEMU sees EINVAL and TELL_ME_WHAT_YOU_HAVE is still set, then it knows it's dealing with an old kernel and has to do one-at-a-time probing. If it sees EINVAL but not TELL_ME_WHAT_YOU_HAVE then it knows it has a new kernel and has just got all the info.That's a great proposal. I'll try to find time to send the patches.
We also have KVM_ARM_PREFERRED_TARGET, which is documented as """ ... The ioctl returns struct kvm_vcpu_init instance containing information about preferred CPU target type and recommended features for it. The kvm_vcpu_init->features bitmap returned will have feature bits set if the preferred target recommends setting these features, but this is not mandatory. ... """ But, it says "recommended" features, not "all supported" features, and the current implementation of KVM_ARM_PREFERRED_TARGET only zeros out features. So, I think we should just leave KVM_ARM_PREFERRED_TARGET as is and stick to the plan of extending VCPU_INIT. Thanks, drew _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel