From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Krawczyk Subject: [PATCH v1 00/24] net/ena: new features and fixes Date: Wed, 9 May 2018 14:44:57 +0200 Message-ID: <20180509124457.22806-1-mk@semihalf.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 To: dev@dpdk.org Return-path: Received: from mail-lf0-f52.google.com (mail-lf0-f52.google.com [209.85.215.52]) by dpdk.org (Postfix) with ESMTP id B1DEB1B3DD for ; Wed, 9 May 2018 14:45:45 +0200 (CEST) Received: by mail-lf0-f52.google.com with SMTP id j193-v6so50764390lfg.6 for ; Wed, 09 May 2018 05:45:45 -0700 (PDT) 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 Michal Krawczyk (10): 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 mk: link librte_timer with --whole-archive 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 Rafal Kozik (14): 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 drivers/net/ena/base/ena_com.c | 717 +++++++------- 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 | 735 +++++++++++--- drivers/net/ena/ena_ethdev.h | 32 +- mk/rte.app.mk | 1 + 15 files changed, 1720 insertions(+), 2013 deletions(-) -- 2.14.1