[dpdk-dev] [RFC 00/12] introduce s390x architecture

Vivian Kong vivkong at gmail.com
Tue Apr 9 21:06:18 CEST 2019


To build and run DPDK on Linux on IBM Z (s390x), big endian support
is added and s390x vector intrinics are used in the implementation 
of DPDK libraries.

I appreciate your feedback.

Vivian Kong (12):
  mk: introduce s390x architecture
  eal: add support for s390x architecture
  acl: add support for s390x architecture
  lpm: add support for s390x architecture
  examples/l3fwd: add support for s390x architecture
  net/i40e: add support for s390x architecture
  test: add support for s390x architecture
  hash: add support for s390x architecture
  doc: introduce s390x architecture
  ethdev: add cast for bus_device
  mbuf: trivial fix
  test: miscellaneous test fixes

 MAINTAINERS                                   |   9 +
 app/test-acl/main.c                           |   4 +
 app/test/autotest_data.py                     |   2 +-
 app/test/test_cmdline.c                       |   6 +-
 app/test/test_cmdline_ipaddr.c                |  13 +-
 app/test/test_cmdline_num.c                   | 111 +++
 app/test/test_xmmt_ops.h                      |  14 +
 config/defconfig_s390x-native-linux-gcc       |   1 +
 config/defconfig_s390x-native-linuxapp-gcc    |  33 +
 doc/guides/nics/features/i40e.ini             |   1 +
 doc/guides/nics/features/i40e_vec.ini         |   1 +
 doc/guides/rel_notes/release_19_05.rst        |   3 +
 drivers/net/i40e/Makefile                     |   2 +
 drivers/net/i40e/i40e_rxtx_vec_s390x.c        | 631 ++++++++++++++++++
 examples/l3fwd/l3fwd_em.c                     |   8 +
 examples/l3fwd/l3fwd_lpm_s390x.h              | 137 ++++
 examples/l3fwd/l3fwd_s390x.h                  | 259 +++++++
 lib/librte_acl/Makefile                       |   2 +
 lib/librte_acl/acl_bld.c                      |  69 +-
 lib/librte_acl/acl_gen.c                      |   9 +
 lib/librte_acl/acl_run_scalar.c               |   8 +
 lib/librte_acl/rte_acl.c                      |   4 +
 lib/librte_acl/rte_acl.h                      |   1 +
 .../common/arch/s390x/rte_cpuflags.c          |  90 +++
 lib/librte_eal/common/arch/s390x/rte_cycles.c |  11 +
 .../common/arch/s390x/rte_hypervisor.c        |  11 +
 .../common/include/arch/s390x/rte_atomic.h    |  47 ++
 .../common/include/arch/s390x/rte_byteorder.h |  43 ++
 .../common/include/arch/s390x/rte_cpuflags.h  |  42 ++
 .../common/include/arch/s390x/rte_cycles.h    |  44 ++
 .../common/include/arch/s390x/rte_io.h        |  18 +
 .../common/include/arch/s390x/rte_memcpy.h    |  55 ++
 .../common/include/arch/s390x/rte_pause.h     |  22 +
 .../common/include/arch/s390x/rte_prefetch.h  |  40 ++
 .../common/include/arch/s390x/rte_rwlock.h    |  42 ++
 .../common/include/arch/s390x/rte_spinlock.h  |  85 +++
 .../include/arch/s390x/rte_ticketlock.h       |  18 +
 .../common/include/arch/s390x/rte_vect.h      |  33 +
 lib/librte_ethdev/rte_ethdev_pci.h            |   2 +-
 lib/librte_hash/rte_fbk_hash.h                |   7 +
 lib/librte_lpm/Makefile                       |   2 +
 lib/librte_lpm/meson.build                    |   2 +-
 lib/librte_lpm/rte_lpm.h                      |   2 +
 lib/librte_lpm/rte_lpm6.c                     |  26 +-
 lib/librte_lpm/rte_lpm_s390x.h                | 130 ++++
 lib/librte_mbuf/rte_mbuf.h                    |   2 +-
 mk/arch/s390x/rte.vars.mk                     |  16 +
 mk/rte.cpuflags.mk                            |   5 +
 48 files changed, 2099 insertions(+), 24 deletions(-)
 create mode 120000 config/defconfig_s390x-native-linux-gcc
 create mode 100644 config/defconfig_s390x-native-linuxapp-gcc
 create mode 100644 drivers/net/i40e/i40e_rxtx_vec_s390x.c
 create mode 100644 examples/l3fwd/l3fwd_lpm_s390x.h
 create mode 100644 examples/l3fwd/l3fwd_s390x.h
 create mode 100644 lib/librte_eal/common/arch/s390x/rte_cpuflags.c
 create mode 100644 lib/librte_eal/common/arch/s390x/rte_cycles.c
 create mode 100644 lib/librte_eal/common/arch/s390x/rte_hypervisor.c
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_atomic.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_byteorder.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_cpuflags.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_cycles.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_io.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_memcpy.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_pause.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_prefetch.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_rwlock.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_spinlock.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_ticketlock.h
 create mode 100644 lib/librte_eal/common/include/arch/s390x/rte_vect.h
 create mode 100644 lib/librte_lpm/rte_lpm_s390x.h
 create mode 100644 mk/arch/s390x/rte.vars.mk

-- 
2.17.1



More information about the dev mailing list