Re: [PATCH kvmtool v3 5/9] KVM: arm/arm64: Add a vcpu feature for pointer authentication

Dave Martin
2019-06-03T14:17:49Z

On Mon, Jun 03, 2019 at 03:07:06PM +0100, Will Deacon wrote:
> On Mon, Jun 03, 2019 at 12:23:03PM +0100, Dave Martin wrote:
> > On Fri, May 31, 2019 at 06:04:16PM +0100, Andre Przywara wrote:
> > > On Thu, 30 May 2019 16:13:10 +0100
> > > Dave Martin <Dave.Martin@arm.com> wrote:
> > >
> > > > From: Amit Daniel Kachhap <amit.kachhap@arm.com>
> > > >
> > > > This patch adds a runtime capabality for KVM tool to enable Arm64 8.3
> > > > Pointer Authentication in guest kernel. Two vcpu features
> > > > KVM_ARM_VCPU_PTRAUTH_[ADDRESS/GENERIC] are supplied together to enable
> > > > Pointer Authentication in KVM guest after checking the capability.
> > > >
> > > > Command line options --enable-ptrauth and --disable-ptrauth are added
> > > > to use this feature. However, if those options are not provided then
> > > > also this feature is enabled if host supports this capability.
> > >
> > > I don't really get the purpose of two options, I think that's quite
> > > confusing. Should the first one either be dropped at all or called
> > > something with "force"?
> > >
> > > I guess the idea is to fail if pointer auth isn't available, but the
> > > option is supplied?
> > >
> > > Or maybe have one option with parameters?
> > > --ptrauth[,=enable,=disable]
> >
> > So, I was following two principles here, either or both of which may be
> > bogus:
> >
> > 1) There should be a way to determine whether KVM turns a given feature
> > on or off (instead of magically defaulting to something).
> >
> > 2) To a first approaximation, kvmtool should allow each major KVM ABI
> > feature to be exercised.
> >
> > 3) By default, kvmtool should offer the maximum feature set possible to
> > the guest.
> >
> >
> > (3) is well established, but (1) and (2) may be open to question?
> >
> > If we hold to both principles, it makes sense to have options
> > functionally equivalent to what I suggested (where KVM provides the
> > control in the first place), but there may be more convenient ways
> > to respell the options.
> >
> > If we really can't decide, maybe it's better to drop the options
> > altogether until we have a real use case.
> >
> > I've found the options very useful for testing and debugging on the SVE
> > side, but I can't comment on ptrauth. Maybe someone else has a view?
>
> I'd prefer to drop them, to be honest. Whilst they may have been useful
> during SVE development, it's not clear to me that they will continue to
> be as useful now that things should be settling down. It's probably useful
> to print out any features that we've explicitly enabled (or failed to
> enable), but I'd stop there for the time being.

I don't have a strong view on this.

I'm happy to respin dropping the command line options and defaulting
everthing to on: for hacking purposes, it's easy to keep a local branch.

Cheers
---Dave