Re: [PATCH net-next v3 7/7] net/smc: manage system EID in SMC stack instead of ISM driver

From: Wen Gu
Date: Wed Dec 06 2023 - 22:47:23 EST




On 2023/12/4 20:57, Alexandra Winter wrote:


On 04.12.23 13:36, Wen Gu wrote:
Here we only check the first smcd device to determine whether we support v2.
Which is ok, for today's platform firmware ISM devices, as they are always the same version.

When you add virtual ISM devices (loopback-ism, virtio-ism) then this needs to be changed.
IMO the logic then needs to be "if all smcd devices support v2,
then smc_ism_v2_capable = true;
else smc_ism_v2_capable = false;"


Thank you. I will change this in the loopback-ism patch set.

But I am wondering if loopback-ism coexists with s390 ISMv1, why smc_ism_v2_capable shouldn't be set?
Is it because the SEID generated in this way is not correct if the s390 ISMv2 does not exist?

I think you're right: 'At least one IMSv2 device' is sufficient for smc_ism_v2_capable.

Actually, we could even always do smc_ism_v2_capable=true, and append an empty ISMv2 device list.
(I am not sure that would be a good idea...)

Interesting sceanrios to consider for ism-loopback:
e.g.: 2 ISMv1 device and 1 ism-loopback...

Yes. when virtual ISM is introduced (e.g. loopback-ism), I think logic can be

1) smc_ism_v2_capable is false initially as now;
2) Set smc_ism_v2_capable when ISMv2 or virtual ISM is registered, regardless of
whether there is already a device in smcd device list.

And I guess the intent of smc_ism_v2_capable is to indicate that this kernel is
capable of using v2 devices rather than indicate that there are v2 smcd devices
available in the list, since right now smc_ism_v2_capable won't be cleared even
ISMv2 devices are unregistered.