[PATCH v3] Add support for IBM Z s390x

Mathew S Thoennes tardis at us.ibm.com
Mon Aug 14 15:03:28 CEST 2023


David,

I will connect with David Christensen in regards to what they are doing for CI.  I have talked to him in the past but now that things are rolling I will reconnect with him.  I do have hardware that the CI could run on to verify the build.  I think testing of the hardware part would end up being at some regular interval since that will have to occur on internal infrastructure.  

Matt.....

Mathew Thoennes
zSystems Research
T.J. Watson Research Center
tardis at us.ibm.com
(914)945-4545

-----Original Message-----
From: David Marchand <david.marchand at redhat.com> 
Sent: Wednesday, August 2, 2023 11:25 AM
To: David Miller <dmiller423 at gmail.com>
Cc: dev at dpdk.org; Mathew S Thoennes <tardis at us.ibm.com>; Konstantin Ananyev <konstantin.v.ananyev at yandex.ru>; Olivier Matz <olivier.matz at 6wind.com>; Yipeng Wang <yipeng1.wang at intel.com>; Sameh Gobriel <sameh.gobriel at intel.com>; Bruce Richardson <bruce.richardson at intel.com>; Vladimir Medvedkin <vladimir.medvedkin at intel.com>; Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>; Yuying Zhang <Yuying.Zhang at intel.com>; Beilei Xing <beilei.xing at intel.com>; Matan Azrad <matan at nvidia.com>; Viacheslav Ovsiienko <viacheslavo at nvidia.com>; Ori Kam <orika at nvidia.com>; Suanming Mou <suanmingm at nvidia.com>; Qiming Yang <qiming.yang at intel.com>; Wenjun Wu <wenjun1.wu at intel.com>; Jakub Grajciar <jgrajcia at cisco.com>; Harman Kalra <hkalra at marvell.com>; Thomas Monjalon <thomas at monjalon.net>; David Christensen <drc at linux.vnet.ibm.com>
Subject: [EXTERNAL] Re: [PATCH v3] Add support for IBM Z s390x

Hello David,

On Wed, Jul 26, 2023 at 3:35 AM David Miller <dmiller423 at gmail.com> wrote:
>
> Minimal changes to drivers and app to support the IBM s390x.

This seems a bit more than "minimal changes" :-).

>
> Signed-off-by: David Miller <dmiller423 at gmail.com>
> Reviewed-by: Mathew S Thoennes <tardis at us.ibm.com>
> ---
>  app/test-acl/main.c                          |   4 +
>  app/test/test_acl.c                          |   1 +
>  app/test/test_atomic.c                       |   7 +-
>  app/test/test_cmdline_ipaddr.c               |  12 +-
>  app/test/test_cmdline_num.c                  | 110 ++++
>  app/test/test_hash_functions.c               |  29 +
>  app/test/test_xmmt_ops.h                     |  14 +
>  buildtools/pmdinfogen.py                     |  11 +-
>  config/meson.build                           |   2 +
>  config/s390x/meson.build                     |  51 ++
>  config/s390x/s390x_linux_clang_ubuntu        |  19 +
>  doc/guides/nics/features/i40e.ini            |   1 +
>  drivers/common/mlx5/mlx5_common.h            |   9 +
>  drivers/net/i40e/i40e_rxtx_vec_s390x.c       | 630 +++++++++++++++++++
>  drivers/net/i40e/meson.build                 |   2 +
>  drivers/net/ixgbe/ixgbe_rxtx.c               |   8 +-
>  drivers/net/memif/rte_eth_memif.h            |   2 +
>  drivers/net/mlx5/mlx5_rx.c                   |  24 +-
>  drivers/net/octeontx/base/octeontx_pki_var.h |   6 +
>  examples/l3fwd/l3fwd_em.c                    |   8 +
>  examples/l3fwd/l3fwd_lpm_s390x.h             | 137 ++++
>  examples/l3fwd/l3fwd_s390x.h                 | 261 ++++++++
>  lib/acl/acl_bld.c                            |   3 +
>  lib/acl/acl_gen.c                            |   9 +
>  lib/acl/acl_run_scalar.c                     |   8 +
>  lib/acl/rte_acl.c                            |  27 +
>  lib/acl/rte_acl.h                            |   5 +-
>  lib/eal/s390x/include/meson.build            |  16 +
>  lib/eal/s390x/include/rte_atomic.h           |  44 ++
>  lib/eal/s390x/include/rte_byteorder.h        |  43 ++
>  lib/eal/s390x/include/rte_cpuflags.h         |  41 ++
>  lib/eal/s390x/include/rte_cycles.h           |  44 ++
>  lib/eal/s390x/include/rte_io.h               | 184 ++++++
>  lib/eal/s390x/include/rte_mcslock.h          |  18 +
>  lib/eal/s390x/include/rte_memcpy.h           |  55 ++
>  lib/eal/s390x/include/rte_pause.h            |  22 +
>  lib/eal/s390x/include/rte_power_intrinsics.h |  20 +
>  lib/eal/s390x/include/rte_prefetch.h         |  46 ++
>  lib/eal/s390x/include/rte_rwlock.h           |  42 ++
>  lib/eal/s390x/include/rte_spinlock.h         |  85 +++
>  lib/eal/s390x/include/rte_ticketlock.h       |  18 +
>  lib/eal/s390x/include/rte_vect.h             |  35 ++
>  lib/eal/s390x/meson.build                    |  16 +
>  lib/eal/s390x/rte_cpuflags.c                 |  91 +++
>  lib/eal/s390x/rte_cycles.c                   |  11 +
>  lib/eal/s390x/rte_hypervisor.c               |  11 +
>  lib/eal/s390x/rte_power_intrinsics.c         |  51 ++
>  lib/hash/rte_fbk_hash.h                      |   7 +
>  lib/lpm/meson.build                          |   1 +
>  lib/lpm/rte_lpm.h                            |   2 +
>  lib/lpm/rte_lpm6.c                           |  18 +
>  lib/lpm/rte_lpm_s390x.h                      | 130 ++++
>  meson.build                                  |   2 +
>  53 files changed, 2439 insertions(+), 14 deletions(-)

- This is too big to review.
Please split this patch separating the really minimum support (getting EAL and main libraries to build, disabling the rest that is "broken"
for s390x) then adding more components support in later patches.

RISC V and LoongArch "recent" additions are good examples.
https://patchwork.dpdk.org/project/dpdk/list/?series=23380&state=%2A&archive=both
https://patchwork.dpdk.org/project/dpdk/list/?series=24969&state=%2A&archive=both 

- We need one maintainer for this new architecture.

- You'll notice that the DPDK CI reported issues, please fix them.

- What are the plans in terms of CI? We need some compilation testing and ideally some regular runtime testing.
Maybe you can reach out to IBM PPC DPDK guys, like David Christensen, to see what they are doing.


--
David Marchand



More information about the dev mailing list