Re: [PATCH net-next v8 00/10] net/smc: implement SMCv2.1 virtual ISM device support

Wen Gu
2023-12-20T13:34:52Z

On 2023/12/19 22:26, Wen Gu wrote:
> The fourth edition of SMCv2 adds the SMC version 2.1 feature updates for
> SMC-Dv2 with virtual ISM. Virtual ISM are created and supported mainly by
> OS or hypervisor software, comparable to IBM ISM which is based on platform
> firmware or hardware.
>
> With the introduction of virtual ISM, SMCv2.1 makes some updates:
>
> - Introduce feature bitmask to indicate supplemental features.
> - Reserve a range of CHIDs for virtual ISM.
> - Support extended GIDs (128 bits) in CLC handshake.
>
> So this patch set aims to implement these updates in Linux kernel. And it
> acts as the first part of SMC-D virtual ISM extension & loopback-ism [1].
>
> [1] https://lore.kernel.org/netdev/1695568613-125057-1-git-send-email-guwen@linux.alibaba.com/
>

Thank you very much for your valuable time and help in this and past versions, Sandy, Wenjia and Jan.

I guess there are only Patch #1 #5 #8 left now:

- Patch #1: Some minor changes in subject and fix the format issue
(length exceeds 80 columns) compared to v3.
- Patch #5: removes useless ini->feature_mask assignment in __smc_connect()
and smc_listen_v2_check() compared to v4.
- Patch #8: new added, compared to v3.

Looking forward to any feedback. Thanks. :)

Best regards,
Wen Gu

> v8->v7:
> - Patch #7: v7 mistakenly changed the type of gid_ext in
> smc_clc_msg_accept_confirm to u64 instead of __be64 as previous versions
> when fixing the rebase conflicts. So fix this mistake.
>
> v7->v6:
> Link: https://lore.kernel.org/netdev/20231219084536.8158-1-guwen@linux.alibaba.com/
> - Collect the Reviewed-by tag in v6;
> - Patch #3: redefine the struct smc_clc_msg_accept_confirm;
> - Patch #7: Because that the Patch #3 already adds '__packed' to
> smc_clc_msg_accept_confirm, so Patch #7 doesn't need to do the same thing.
> But this is a minor change, so I kept the 'Reviewed-by' tag.
>
> Other changes in previous versions but not yet acked:
> - Patch #1: Some minor changes in subject and fix the format issue
> (length exceeds 80 columns) compared to v3.
> - Patch #5: removes useless ini->feature_mask assignment in __smc_connect()
> and smc_listen_v2_check() compared to v4.
> - Patch #8: new added, compared to v3.
>
> v6->v5:
> Link: https://lore.kernel.org/netdev/1702371151-125258-1-git-send-email-guwen@linux.alibaba.com/
> - Add 'Reviewed-by' label given in the previous versions:
> * Patch #4, #6, #9, #10 have nothing changed since v3;
> - Patch #2:
> * fix the format issue (Alignment should match open parenthesis) compared to v5;
> * remove useless clc->hdr.length assignment in smcr_clc_prep_confirm_accept()
> compared to v5;
> - Patch #3: new added compared to v5.
> - Patch #7: some minor changes like aclc_v2->aclc or clc_v2->clc compared to v5
> due to the introduction of Patch #3. Since there were no major changes, I kept
> the 'Reviewed-by' label.
>
> Other changes in previous versions but not yet acked:
> - Patch #1: Some minor changes in subject and fix the format issue
> (length exceeds 80 columns) compared to v3.
> - Patch #5: removes useless ini->feature_mask assignment in __smc_connect()
> and smc_listen_v2_check() compared to v4.
> - Patch #8: new added, compared to v3.
>
> v5->v4:
> Link: https://lore.kernel.org/netdev/1702021259-41504-1-git-send-email-guwen@linux.alibaba.com/
> - Patch #6: improve the comment of SMCD_CLC_MAX_V2_GID_ENTRIES;
> - Patch #4: remove useless ini->feature_mask assignment;
>
> v4->v3:
> https://lore.kernel.org/netdev/1701920994-73705-1-git-send-email-guwen@linux.alibaba.com/
> - Patch #6: use SMCD_CLC_MAX_V2_GID_ENTRIES to indicate the max gid
> entries in CLC proposal and using SMC_MAX_V2_ISM_DEVS to indicate the
> max devices to propose;
> - Patch #6: use i and i+1 in smc_find_ism_v2_device_serv();
> - Patch #2: replace the large if-else block in smc_clc_send_confirm_accept()
> with 2 subfunctions;
> - Fix missing byte order conversion of GID and token in CLC handshake,
> which is in a separate patch sending to net:
> https://lore.kernel.org/netdev/1701882157-87956-1-git-send-email-guwen@linux.alibaba.com/
> - Patch #7: add extended GID in SMC-D lgr netlink attribute;
>
> v3->v2:
> https://lore.kernel.org/netdev/1701343695-122657-1-git-send-email-guwen@linux.alibaba.com/
> - Rename smc_clc_fill_fce as smc_clc_fill_fce_v2x;
> - Remove ISM_IDENT_MASK from drivers/s390/net/ism.h;
> - Add explicitly assigning 'false' to ism_v2_capable in ism_dev_init();
> - Remove smc_ism_set_v2_capable() helper for now, and introduce it in
> later loopback-ism implementation;
>
> v2->v1:
> - Fix sparse complaint;
> - Rebase to the latest net-next;
>
> Wen Gu (10):
> net/smc: rename some 'fce' to 'fce_v2x' for clarity
> net/smc: introduce sub-functions for smc_clc_send_confirm_accept()
> net/smc: unify the structs of accept or confirm message for v1 and v2
> net/smc: support SMCv2.x supplemental features negotiation
> net/smc: introduce virtual ISM device support feature
> net/smc: define a reserved CHID range for virtual ISM devices
> net/smc: compatible with 128-bits extended GID of virtual ISM device
> net/smc: support extended GID in SMC-D lgr netlink attribute
> net/smc: disable SEID on non-s390 archs where virtual ISM may be used
> net/smc: manage system EID in SMC stack instead of ISM driver
>
> drivers/s390/net/ism.h | 7 -
> drivers/s390/net/ism_drv.c | 57 ++----
> include/linux/ism.h | 1 -
> include/net/smc.h | 16 +-
> include/uapi/linux/smc.h | 2 +
> include/uapi/linux/smc_diag.h | 2 +
> net/smc/af_smc.c | 118 ++++++++-----
> net/smc/smc.h | 10 +-
> net/smc/smc_clc.c | 318 +++++++++++++++++++++-------------
> net/smc/smc_clc.h | 64 +++----
> net/smc/smc_core.c | 37 ++--
> net/smc/smc_core.h | 18 +-
> net/smc/smc_diag.c | 9 +-
> net/smc/smc_ism.c | 50 ++++--
> net/smc/smc_ism.h | 30 +++-
> net/smc/smc_pnet.c | 4 +-
> 16 files changed, 448 insertions(+), 295 deletions(-)
>