On Wed, Dec 08 2021, Thomas Huth <thuth@xxxxxxxxxx> wrote:
On 02/12/2021 09.33, Harald Freudenberger wrote:Um, the queues/cards are devices on the bus, and just can have
On 02.12.21 08:13, Thomas Huth wrote:
On 01/12/2021 18.10, Harald Freudenberger wrote:Yes, of course for the automatic module load works this way. But you understand that now
On 01.12.21 15:11, Thomas Huth wrote:Yes, I've tested it. Without the patch, the vfio_ap module does not get loaded automatically if a crypto card is available. With the patch applied, the vfio_ap module correctly gets loaded automatically on my system (similar to the vfio_ccw module).
The crypto devices that we can use with the vfio_ap module are sittingHello Thomas, interesting.
on the "ap" bus, not on the "vfio_ap" bus that the module defines
itself. With this change, the vfio_ap module now gets automatically
loaded if a supported crypto adapter is available in the host.
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
---
Note: Marked as "RFC" since I'm not 100% sure about it ...
please review carefully!
drivers/s390/crypto/vfio_ap_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/s390/crypto/vfio_ap_drv.c b/drivers/s390/crypto/vfio_ap_drv.c
index 4d2556bc7fe5..5580e40608a4 100644
--- a/drivers/s390/crypto/vfio_ap_drv.c
+++ b/drivers/s390/crypto/vfio_ap_drv.c
@@ -39,7 +39,7 @@ static struct ap_device_id ap_queue_ids[] = {
{ /* end of sibling */ },
};
-MODULE_DEVICE_TABLE(vfio_ap, ap_queue_ids);
+MODULE_DEVICE_TABLE(ap, ap_queue_ids);
/**
* vfio_ap_queue_dev_probe:
Did you test this ? I mean did you build a kernel and have it run on a s390 with crypto cards available ?
My strong feeling is that this will make the AP bus code stumble as the code silently assumes there are exactThis is only about getting the module loaded automatically once such a device is available ... AFAIK it does not grab any of the devices automatically, so there shouldn't be any problems?
two types of ap devices attached to the ap bus: ap cards and ap queues.
Thomas
the vfio devices are childs of the ap bus and thus are siblings of the ap queue and ap card
devices. As I wrote the ap bus code is not prepared to deal with a 3th type of devices
dangling on the ap bus. So you should test what happens when there are real vfio ap devices
in use together with 'regular' ap card and queue devices.
different drivers bound to them, right? The only device that the vfio-ap
driver creates is the matrix device (which does not live on the ap bus),
and this patch doesn't change that. It only correctly creates a table
for a driver that already matched on the ap bus.
I pondered about this for a while, but I still do not quite understand. TheCorrect me if I'm wrong, but don't the devices on the ap bus need to be
MODULE_DEVICE_TABLE macro only adds a __mod_something_device_table symbol to
the module, it does not change the hierarchy of the vfio devices ... so this
is really only about loading the module automatically. Or do you say that
there is already a problem if a user loads the module manually and thus it
should not get loaded automatically?
actually configured before they can attach to a non-default
(i.e. vfio-ap) driver? IOW, it's not a simple bind operation, but extra
configuration is required, so a loaded vfio-ap module should not affect
any devices not configured to actually use it at all.
MODULE_DEVICE_TABLE declares "I can drive these devices", so it doesn'tHowever, I am still not sure if it is preferable to have the vfio ap module loaded automatically. The majorityvfio-ccw also gets loaded automatically via MODULE_DEVICE_TABLE, so I think
of customers will never use vfio ap devices - this is specific to kvm hosts only.
vfio-ap should be handled the same way.
(Or should we maybe rather remove the MODULE_DEVICE_TABLE line from both
modules instead?)
feel correct to remove them. If the modules should not be autoloaded,
the system must be configured to not autoload them.
Besides, is loading an extra module really causing that much harm? Does
vfio-ap drag in too much other stuff?