From patchwork Tue Apr 9 19:06:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vivian Kong X-Patchwork-Id: 52495 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BCB895323; Tue, 9 Apr 2019 21:06:34 +0200 (CEST) Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by dpdk.org (Postfix) with ESMTP id 4A26E4F98 for ; Tue, 9 Apr 2019 21:06:33 +0200 (CEST) Received: by mail-qt1-f173.google.com with SMTP id s15so12821828qtn.3 for ; Tue, 09 Apr 2019 12:06:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:reply-to; bh=LeTEA6k9kGaSP1KHmIteCglIX/u4HiqmDVoO0MRHFPU=; b=cnDYlez4CrOHInIHEDHm8vQYDHKLUZe7IweAUbN9Xjwb+i7MwSJEkur0kFY+M6rHYn LY962tWi2svmI6UvTxRJpanUSo4FItPwt2oZdRpBrT3wmD3hfApjMjEJzrE202iOjLVM FvQ9856JSDGP+Lby94r5Gy7kCWV8Ox2t71zdBTMA9NHTlt/L5BFCrOKRHok47ng4iT8e mKfSMIfL+qPXHAGkoPGg8Cgoec+GmrJ6/iHvWaLxkBMW819j8uxUKIU4X2UeIf8Oasy0 jUFRFeZNBKAeweWgZcGxUGevv+uPL6iKfwLDQW7LUbPkdPsit9foo+HVOEFts2k1BNFW /tZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:reply-to; bh=LeTEA6k9kGaSP1KHmIteCglIX/u4HiqmDVoO0MRHFPU=; b=Ybf54afHIjRDRXhX9cw4mn1Niz0WgxEJ+IVw4ykkgscgWUmdkIx96qLGNqI3DxNtmf bNLh6kGTc9Id8qMPBMeRCnX9pmdnUFvvDtV5iy7nxSwrYVaLWsHpjur4+YGJYalgeERc Jx6+bv08Lc8ZtrAjE0/kOPi7Ehy7uyWjAKktsSymyeVmnytZEWFf1cuFWxv3TczVzjYx O+BJB9wSX5B3+TIOYiU6/8tKwvVF8m9+nhbufpNq5hR4hTM8ftGStkIo4Gq3FlYzpNMi Bn10aDBdAun2KuomXlHLbGzWybA33/Ih3EkQsvpao5c8cUIDNfXjAwTJ8BEo+DjZXhhz w70w== X-Gm-Message-State: APjAAAUAhFILTc1GIWAbbu9scxW0p4bKzJ9Cixja3EgDylorm5FMdcRc w5R+i9ZPQOAuT602Zem1U+r89Ygs1ss= X-Google-Smtp-Source: APXvYqz7rk3RATw7puClT0GvQnB6VfHtmatQYRUoz8SgIADjjmXSpP493mXxA1918XOevQBtofEZOg== X-Received: by 2002:ac8:f6e:: with SMTP id l43mr31393031qtk.322.1554836792203; Tue, 09 Apr 2019 12:06:32 -0700 (PDT) Received: from csz25116.canlab.ibm.com ([199.246.40.57]) by smtp.gmail.com with ESMTPSA id q23sm17934789qkc.16.2019.04.09.12.06.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Apr 2019 12:06:31 -0700 (PDT) From: Vivian Kong X-Google-Original-From: Vivian Kong To: dev@dpdk.org Date: Tue, 9 Apr 2019 15:06:18 -0400 Message-Id: <20190409190630.31975-1-vivkong@ca.ibm.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [RFC 00/12] introduce s390x architecture X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: vivkong@ca.ibm.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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