Re: [RFC 05/19] s390/zcrypt: base implementation of AP matrix device driver

From: Cornelia Huck
Date: Thu Nov 16 2017 - 11:48:02 EST


On Thu, 16 Nov 2017 09:25:27 -0500
Tony Krowiak <akrowiak@xxxxxxxxxxxxxxxxxx> wrote:

> On 11/16/2017 07:35 AM, Cornelia Huck wrote:
> > On Thu, 16 Nov 2017 13:02:26 +0100
> > Pierre Morel <pmorel@xxxxxxxxxxxxxxxxxx> wrote:
> >
> >> On 14/11/2017 17:37, Tony Krowiak wrote:
> >>> On 11/14/2017 07:40 AM, Cornelia Huck wrote:
> >>>> On Fri, 13 Oct 2017 13:38:50 -0400
> >>>> Tony Krowiak <akrowiak@xxxxxxxxxxxxxxxxxx> wrote:
> >>>>> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
> >>>>> index 48af970..411c19a 100644
> >>>>> --- a/arch/s390/Kconfig
> >>>>> +++ b/arch/s390/Kconfig
> >>>>> @@ -722,6 +722,19 @@ config VFIO_CCW
> >>>>> To compile this driver as a module, choose M here: the
> >>>>> module will be called vfio_ccw.
> >>>>> +config VFIO_AP_MATRIX
> >>>>> + def_tristate m
> >>>>> + prompt "Support for Adjunct Processor Matrix device interface"
> >>>>> + depends on ZCRYPT
> >>>>> + select VFIO
> >>>>> + select MDEV
> >>>>> + select VFIO_MDEV
> >>>>> + select VFIO_MDEV_DEVICE
> >>>>> + select IOMMU_API
> >>>> I think the more common pattern is to depend on the VFIO configs
> >>>> instead of selecting them.
> >>> It's ironic because I originally changed from using 'depends on' and
> >>> changed it based on review comments made
> >>> on our internal mailing list. I'll go with 'depends on'.
> >> Is doing like the others a sufficient good reason?
> >> What if the first who did this did not really think about it?
> >>
> >> When an administrator configure the kernel what does he think?
> >>
> >> - I want to have AP through AP_VFIO in my guests
> >> and he get implicitly VFIO
> >> or
> >> - I want to have VFIO
> >> and he has to explicitly add AP_VFIO too
> >>
> >> It seems to me that the first is much more user friendly.
> >>
> >> Please tell me if I missed something. dependencies? collateral damages?
> >> my logic is wrong?
> > Using select for anything that's not a simple infrastructure dependency
> > may lead into trouble (we've had issues in the past where options tried
> > to enable other options but missed dependencies).
> >
> > If a user wants to use vfio-ap, I think it is reasonable to expect them
> > to figure out that they need both ap and vfio for that.
> >
> > [And config help has gotten much better than it was years ago; it's not
> > that hard to figure out what is actually needed.]
> Is it sufficient to specify 'depends on ZCRYPT && VFIO_MDEV_DEVICE'
> since 'VFIO_MDEV_DEVICE depends on VFIO && VFIO_MDEV' and 'VFIO_MDEV
> depends on VFIO' and 'VFIO depends on IOMMU_API'?

Perhaps ZCRYPT && VFIO_MDEV && VFIO_MDEV_DEVICE, to make it a bit more
obvious?

[Also, is IOMMU_API only needed to satisfy dependencies?]