From patchwork Thu Jun 7 09:43:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 40713 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 722652C02; Thu, 7 Jun 2018 11:43:24 +0200 (CEST) Received: from mail-lf0-f66.google.com (mail-lf0-f66.google.com [209.85.215.66]) by dpdk.org (Postfix) with ESMTP id C62CE200 for ; Thu, 7 Jun 2018 11:43:22 +0200 (CEST) Received: by mail-lf0-f66.google.com with SMTP id i83-v6so13653370lfh.5 for ; Thu, 07 Jun 2018 02:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=4B6l/VMhR7tYeLyR2/cR5Wr4ABRUrtni3OQTHAljZLc=; b=SYk8fZMUMBG3UrO2fU9hu5k3EcSYvp8dlYLKs4GThGhBIrjgIV6Kr7tORZobydSloN Ivp3GFFxXxWFkQrg8CUWAcQPwxTwRDwKH7YVSfFZAt/AH341jvjB5HXODs7rXtiJONnR CB82+cy3OiP+OVE48bD/NS9fr0siWaWf6pAqP1zGo2RvqOGVWepR/l9jFCbF7ZwCpnMY oJJNZ3+KKEB6vASLGFyT+bkLtgcD1L1Dp5v/vEWWxvPqR6SR6HtQm+geqUFOJlGbTmWr UZ8ZNEGmEXIPf4RpmTr/wkvZbzwNYsXbpxNUOn/AoO5kbYdw0ro3a8CbmzqogztG9txG UZyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=4B6l/VMhR7tYeLyR2/cR5Wr4ABRUrtni3OQTHAljZLc=; b=LdTJWnQ1PwuCmceCGBpd6ThRQramv2DR7k5irtq2ciZI9bcZwngWkZ4Q+uJWxIcC71 YLj5sMU6uk3fLvhyQDj9AGXnyiiRKdOTJJp3CczB5yVnfAET5Ni3cQWp9zGv1cNdB8L9 04fppq7Bvq71lcntI3fyG4IrIr7L4Lo0wxJyd6whaVsuD4S3XRA32Zqc24Sjmbq0GrEc OKKYFgmL/VQ7bCkGoTUG/htC3VNLoYUPaE24RRL52XILPNAzmHGBPlFN5rY80MRyQJBm 0Qvt2q6Zpli13W46wjjZgCwqvNbWUX7rAVQeweS0OwwHVOIOFVUo8S0Q+xI/UIYv6MVF my8A== X-Gm-Message-State: APt69E2QnOAZCA5K+f5wfK46TtMjDq8wPB2uPB73TE4Np3ScQUFkGOIm WBNOeS5tAp97B4dQiPnfjr+jo9sS7Qo= X-Google-Smtp-Source: ADUXVKIjLPJpp3yLrTuBldQZI+oR3CeDGB1wNRm2LDS75r9p9VfhEWKJjX+ZsaU8NhfPnN5TnDPHRg== X-Received: by 2002:a2e:7a0f:: with SMTP id v15-v6mr1018385ljc.68.1528364602065; Thu, 07 Jun 2018 02:43:22 -0700 (PDT) Received: from mkPC.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id r21-v6sm6539lja.92.2018.06.07.02.43.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Jun 2018 02:43:21 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: mw@semihalf.com, rk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, thomas@monjalon.net, matua@amazon.com, anatoly.burakov@intel.com, Michal Krawczyk Date: Thu, 7 Jun 2018 11:43:00 +0200 Message-Id: <20180607094300.14265-1-mk@semihalf.com> X-Mailer: git-send-email 2.14.1 Subject: [dpdk-dev] [PATCH v3 00/27] net/ena: new features and fixes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The ENA driver was updated with the new features and few fixes and minor changes are introduced. First of all, the communication layer which is delivered by vendor was updated - the version in the HEAD is a bit outdated now. ENA is able to communicate with the driver through Admin queue by using admin interrupts instead of polling. Admin interrupts are also used for handling AENQ events, which are used for the following new features: - LSC handlers - watchdog and device rest - monitoring the admin queue - handling ENA notifications (getting hints from device) For the watchdog and admin queue monitoring, the timers had to be used, so the makefile was modified to do not cut out the librte_timer. From other fixes and changes: - legacy LLQ was removed which is now deprecated API - Rx out of order completion was added to enable cleaning up packets out of order - Tx mbufs are now linearized if they exceed supported number of segments - pass information about maximum number of Tx and Rx descriptors - the IO queue number is now taking into consideration maximum number of sq and cq - Tx id requested for sending is now being validated and the reset is being triggered if it is invalid - branch predictioning was added for better performance - error checking and returned values were fixed - macros for allocating memory in communication layer were fixed - information about numa mode is now being passed to the NIC --- v3: * Change version of the ENA PMD to 1.1.0 * Fix icc compile errors * Remove patch adding librte_timer as --whole-archive (it is already in) * Add lrte-timer dependency to ENA to resolve error when building DPDK as shared library v2: * Rebased on top of dpdk-next-net * Added link speed patch * Added fix when allocating coherent memory in the PMD Michal Krawczyk (12): net/ena: change version number to 1.1.0 net/ena: update ena_com to the newer version net/ena: add interrupt handler for admin queue net/ena: add stop and uninit routines net/ena: add LSC intr support and AENQ handling net/ena: restart only initialized queues instead of all net/ena: add reset routine net/ena: add lrte_timer dependency for linking net/ena: add watchdog and keep alive AENQ handler net/ena: add checking for admin queue state net/ena: add RX out of order completion net/ena: store handle after memory allocation Rafal Kozik (15): net/ena: remove support of legacy LLQ net/ena: handle ENA notification net/ena: make watchdog configurable net/ena: linearize Tx mbuf net/ena: add info about max number of Tx/Rx descriptors net/ena: unimplemented handler error net/ena: rework configuration of IO queue numbers net/ena: validate Tx req id net/ena: add (un)likely statements net/ena: adjust error checking and cleaning net/ena: update numa node net/ena: check pointer before memset net/ena: change memory type net/ena: fix GENMASK_ULL macro net/ena: set link speed as none drivers/net/ena/Makefile | 1 + drivers/net/ena/base/ena_com.c | 706 +++++++------- drivers/net/ena/base/ena_com.h | 112 +-- drivers/net/ena/base/ena_defs/ena_admin_defs.h | 1164 +++++++---------------- drivers/net/ena/base/ena_defs/ena_common_defs.h | 8 +- drivers/net/ena/base/ena_defs/ena_eth_io_defs.h | 758 +++++---------- drivers/net/ena/base/ena_defs/ena_gen_info.h | 4 +- drivers/net/ena/base/ena_defs/ena_includes.h | 2 - drivers/net/ena/base/ena_defs/ena_regs_defs.h | 36 + drivers/net/ena/base/ena_eth_com.c | 78 +- drivers/net/ena/base/ena_eth_com.h | 10 +- drivers/net/ena/base/ena_plat.h | 2 - drivers/net/ena/base/ena_plat_dpdk.h | 74 +- drivers/net/ena/ena_ethdev.c | 720 +++++++++++--- drivers/net/ena/ena_ethdev.h | 32 +- mk/rte.app.mk | 1 + 16 files changed, 1706 insertions(+), 2002 deletions(-)