From patchwork Mon Jun 11 11:00:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 40975 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 9D9FD1E2FE; Mon, 11 Jun 2018 13:00:18 +0200 (CEST) Received: from mail-lf0-f68.google.com (mail-lf0-f68.google.com [209.85.215.68]) by dpdk.org (Postfix) with ESMTP id BBF791E2D4 for ; Mon, 11 Jun 2018 13:00:17 +0200 (CEST) Received: by mail-lf0-f68.google.com with SMTP id d24-v6so29835889lfa.8 for ; Mon, 11 Jun 2018 04:00:17 -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:in-reply-to:references; bh=ct04jWibwYhqe51jvUUqK/9croILhkQ/LQ4rXdVKBNo=; b=r26XHtsr8+S6IznCbBiVa4IL9o/ynRQsSyRau4K37ZwOnl724RoO5y6vbkFU7/BdFx HUS1bJbzqEdyrxwZ/BbBZYhrsEBXKmXfcxuo8ww5jejCy4vcv7iBlk4UTfNUWM6EaMrw wIdu4g4kM2sqCu0whx+lcSpMBIJ8CB18YTToSpV8ZHTKjhi0nrZ5KI5QNpfEGdR0lAtV s6vg7Kls6kCbIuFEqYvtjjbKcKk7PMb5ZHNjAMHoO6uUpnLFHXtkS44/QgJRclk9rtcN hNgaa14KXrcdRZ82pISqB/EzpQsrrLedqWOqsJVP8MnxNkzpj2SvoPjl1ODF9nmu56i2 w5UA== 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:in-reply-to :references; bh=ct04jWibwYhqe51jvUUqK/9croILhkQ/LQ4rXdVKBNo=; b=kew83yfhDlfycWlzOABDH/7HeeWBcKFghUg9xGie1iKemShtWAAK4d+lAt7AvWXGQr kJzpQuG5YSvv00+adnWDbNM6zc6BQa57MOnOx2Sl1wFVMNU6HS6DM+SDaH9OkLF5Fo8Q zowUJ2aeb11y32KWJ9FB3D7h06BR96j6V2MPHegJwFM+RwgtWinb+Rz1K2WdCaElV/1F vuCrIsk5LFqUcWn7xCrY4HX54dpvlpfv/FREDg3Y8R1Q/sbFl1TbLl7as3xnrCZ0mkKr seZ9hCOBN3vwJ/qhXUKOwLo3LqZZ1WDgwU45Vb5b+9gcNVmDIe589l61cW1kAVsCMlLP AKdg== X-Gm-Message-State: APt69E3IlsGSwMfeyR7XidrRne4iEXsN+qmlrX9Ks4GRDG05MVHkYo8D 26iX1FAzl3UKSur5OX0Vxq1//UQh14E= X-Google-Smtp-Source: ADUXVKITA2HqLAoA0xhqbuhq79tahZSTAAp+htkEhlHNnqBisiyJlT6ik95thc5vVhJLvUEYoUQVzg== X-Received: by 2002:a19:d957:: with SMTP id q84-v6mr9970639lfg.79.1528714817122; Mon, 11 Jun 2018 04:00:17 -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 y206-v6sm2778401lfc.60.2018.06.11.04.00.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Jun 2018 04:00:16 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org, ferruh.yigit@intel.com 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: Mon, 11 Jun 2018 13:00:08 +0200 Message-Id: <20180611110008.9530-1-mk@semihalf.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180611095336.12093-1-mk@semihalf.com> References: <20180611095336.12093-1-mk@semihalf.com> Subject: [dpdk-dev] [PATCH v5 0/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 --- v5: * Fix icc compile error in ena_com (timestamp unsused if debug not set) v4: * Fix ena_com build error with debug enabled 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 | 711 +++++++------- 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, 1710 insertions(+), 2003 deletions(-)