Re: [RFC PATCH] s390: vfio-ap: Register the vfio_ap module for the "ap" parent bus

Harald Freudenberger
2022-01-31T11:06:00Z

On 27.01.22 15:23, Tony Krowiak wrote:
>
>
> On 12/2/21 03:33, Harald Freudenberger wrote:
>> On 02.12.21 08:13, Thomas Huth wrote:
>>> On 01/12/2021 18.10, Harald Freudenberger wrote:
>>>> On 01.12.21 15:11, Thomas Huth wrote:
>>>>> The crypto devices that we can use with the vfio_ap module are sitting
>>>>> 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@redhat.com>
>>>>> ---
>>>>>    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:
>>>> Hello Thomas, interesting.
>>>> Did you test this ? I mean did you build a kernel and have it run on a s390 with crypto cards available ?
>>> 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).
>>>
>>>> My strong feeling is that this will make the AP bus code stumble as the code silently assumes there are exact
>>>> two types of ap devices attached to the ap bus: ap cards and ap queues.
>>> This 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?
>>>
>>>   Thomas
>>>
>> Yes, of course for the automatic module load works this way. But you understand that now
>> 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.
>>
>> However, I am still not sure if it is preferable to have the vfio ap module loaded automatically. The majority
>> of customers will never use vfio ap devices - this is specific to kvm hosts only. I think this has to be
>> decided by Tony and maybe some kvm architect. If there is an agreement, I will try to rework the
>> ap code to be able to deal with foreign devices attached to the ap bus.
>
> Can you please explain how foreign devices can get attached to the bus if the vfio_ap device
> driver is automatically loaded because the MODULE_DEVICE_TABLE specification is changed?
Hello Tony,
I think this is not a question to me ? Of course you are right that when the vfio_ap is
automatically loaded there is no change for other 'alternative' device drivers. However, as of now
there exist only two parties here - the 'default' device driver(s) and the vfio_ap dd and as we do
not officially support out-of-tree builds there is nothing to see in the kernel about a third party dd.
>
> Regards,
> Tony Krowiak
>
>>
>> So thanks for your investigations. Let's wait for Tony and see how we proceed.
>>
>> Harald
>> Harald
>