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

From: Tony Krowiak
Date: Fri Nov 17 2017 - 16:14:07 EST

On 11/16/2017 11:47 AM, Cornelia Huck wrote:
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.
+ def_tristate m
+ prompt "Support for Adjunct Processor Matrix device interface"
+ depends on ZCRYPT
+ select VFIO
+ select MDEV
+ select VFIO_MDEV
+ 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
- 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
Sure, why not.

[Also, is IOMMU_API only needed to satisfy dependencies?]
Yes, VFIO is dependent upon it.