From patchwork Thu Sep 17 05:30:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77961 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id ABBEFA04B6; Thu, 17 Sep 2020 07:30:57 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 277B01D52D; Thu, 17 Sep 2020 07:30:53 +0200 (CEST) Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by dpdk.org (Postfix) with ESMTP id 40DAC1D51B for ; Thu, 17 Sep 2020 07:30:50 +0200 (CEST) Received: by mail-lf1-f68.google.com with SMTP id b22so741880lfs.13 for ; Wed, 16 Sep 2020 22:30:50 -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 :mime-version:content-transfer-encoding; bh=ixuVkmusewtM4rTnFY+1VAqwyLLxdGwKpPRz1hHfcS0=; b=EmIPu4xRMvLZu0s0nQrUa71qC3DtntP24wlfkzN2zIIbDgDGZvro1q+U+JaZsbSp6K ei2v0AJtqHa4XSdnK8d/LSErbo3siKcSfKB2VC+/djYBCK/7uv9DIigNwokQJIGSDWLe 7Rd9w4JMNGNxhRNIex3JIdX80fO9glX9FXBZ/J599++uwVYESgb7v7zHBkgxUNytVGl2 e+2QsrzT3V38H2icRqWBFo0lZImPtdGAe5ZxIVxxBkMI6bP2sRv9SidoyLVhTxlbUc+W LYOfzFPPOq2TeIBn5hY0TcVjA+VCESx5RA4c7hwtjNwk853U9fB9LoOPLbULmQCk9dYO BQAA== 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:mime-version:content-transfer-encoding; bh=ixuVkmusewtM4rTnFY+1VAqwyLLxdGwKpPRz1hHfcS0=; b=icuNfxNdx72LkFVGfFUCf9Tifg9ICqjhPyqM9oRIpEFMee+yHTuoDT3xoclm8pTikz tz5tNo9Q7SZJcRivlITEKTUA8sHzo9LsW9y2PasG4GoFJuQxibTLTeLBkmWW4SyvHQMY CSYm451BJSMSdoVYDAa6hOFbpFRMe8asWw885VfgsiEFKVkchfDhcBj37ORYn76mDUFr R476B+dMV7pmF5zV8B40o0suFvKTjIiCS7HA6J39FpUnZ4GsbjqhAcGU6Mzdx8Esl2AE I2FUqysB2YppPod5n8gS55dKAN5Yu8zOHXyVUpW3llRNYJ7ZbJ4+hdCKKJIBvK9dVrgv q7/A== X-Gm-Message-State: AOAM533YyElFZMGR9Y05HF4K50Er80NkVXXm672pxmjGkXfj5rLjETy7 tlh711Ro7K5NMXk/cSGoHB3JrwW9AlxQ4IxT X-Google-Smtp-Source: ABdhPJxIAIklINiQNHAPGnhxiBiTtgHwTpmWdK9hD0wxeJLPkx1f+mQ4fgfy4kznYT7mfvfl7Y6fuQ== X-Received: by 2002:a19:a41a:: with SMTP id q26mr9461873lfc.467.1600320649577; Wed, 16 Sep 2020 22:30:49 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:48 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , stable@dpdk.org, Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:16 +0200 Message-Id: <20200917053035.1889989-2-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 01/20] net/ena/base: use min/max macros with type conversion 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" Usage of RTE_MIN(MAX) in ENA_MIN32, ENA_MIN16, ENA_MIN8 (and same for the MAX), was not enough, as the HAL code is assuming that those macros will conver both arguments to the specified uintX_t type. As RTE_MIN(MAX) is using 'typeof' operator, the behavior won't be the same, especially if arguments has different types (and it could cause compilation warnings). To satisfy that, the ENA_MIN_T and ENA_MAX_T macros were added, which are converting both arguments to the type which is being passed as an argument. Fixes: 9ba7981ec992 ("ena: add communication layer for DPDK") Cc: stable@dpdk.org Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_plat_dpdk.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index 595967e6e3..ba7a098f59 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -86,12 +86,14 @@ extern int ena_logtype_com; #define ENA_ASSERT(cond, format, arg...) do {} while (0) #endif -#define ENA_MAX32(x, y) RTE_MAX((x), (y)) -#define ENA_MAX16(x, y) RTE_MAX((x), (y)) -#define ENA_MAX8(x, y) RTE_MAX((x), (y)) -#define ENA_MIN32(x, y) RTE_MIN((x), (y)) -#define ENA_MIN16(x, y) RTE_MIN((x), (y)) -#define ENA_MIN8(x, y) RTE_MIN((x), (y)) +#define ENA_MAX_T(type, x, y) RTE_MAX((type)(x), (type)(y)) +#define ENA_MAX32(x, y) ENA_MAX_T(uint32_t, (x), (y)) +#define ENA_MAX16(x, y) ENA_MAX_T(uint16_t, (x), (y)) +#define ENA_MAX8(x, y) ENA_MAX_T(uint8_t, (x), (y)) +#define ENA_MIN_T(type, x, y) RTE_MIN((type)(x), (type)(y)) +#define ENA_MIN32(x, y) ENA_MIN_T(uint32_t, (x), (y)) +#define ENA_MIN16(x, y) ENA_MIN_T(uint16_t, (x), (y)) +#define ENA_MIN8(x, y) ENA_MIN_T(uint8_t, (x), (y)) #define BITS_PER_LONG_LONG (__SIZEOF_LONG_LONG__ * 8) #define U64_C(x) x ## ULL From patchwork Thu Sep 17 05:30:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77962 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id AB9B2A04B6; Thu, 17 Sep 2020 07:31:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B45661D53B; Thu, 17 Sep 2020 07:30:54 +0200 (CEST) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by dpdk.org (Postfix) with ESMTP id 76E871D528 for ; Thu, 17 Sep 2020 07:30:51 +0200 (CEST) Received: by mail-lj1-f196.google.com with SMTP id a22so855325ljp.13 for ; Wed, 16 Sep 2020 22:30:51 -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 :mime-version:content-transfer-encoding; bh=BMN1YNV7A4cvZbz5uQpLiLV5LPtbcWN7mEyX30wUXCU=; b=st2Tjn8CxC71x76jG9N2AjIsO+oGTmoO3P5mRPcsqsMw62sKbclSp0uG6ISY6wm6Wh rUUkuaCQeCCsIGwHBTAGY43UihemYDDzFSXRILk1BypQjkprZRtxTZH1LSkowI+0ldqK NcbHALTYjZ6M/cCnDJI7lv1G2/NXhBA9W9oJlvUj5gwvVaJRX7iUgh0ujVaddSmmh+M7 /GzDSqOhsH5wru/LGIPJ5txVb6hzgcN2UgYtUhbxlnuwEkC8kYyH8fzuhWMId0g6ExNq tkCZnUKv0p0S33wNS8gbJX3G6J/5h4VRHCzjB2+q7dKWHJJRwxcUop6peAXzepaGsPZ4 4kGg== 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:mime-version:content-transfer-encoding; bh=BMN1YNV7A4cvZbz5uQpLiLV5LPtbcWN7mEyX30wUXCU=; b=ZfdJl0p7jFEl3QuCc5R2GAyEhmsdcX4btAfzHGpWL5wbMZ42B3waH3KY9YEi12qI5Q Knxq3AVULZC2GOK4QV+BwWMcKmiRPSxN8OyRSfeXYSNH0yPpE6xrO2venH91/cKhgdNZ FsupZXWD8wldUzWR4PlDn2iMETNmQyRnLIHoTPAt2L7Fg6PhsoRWPqnOw7OV6LVQEmgN +kRD6CMs7z4IR6c79RyadEQLk9+cM71lX6Jq68/+9HuSyrqstsQxZUBA9unL/DJwF/FH yCu3a5gZvxHOSDov/cpDogd4Jc8ZNdl1uMlJZCeMKusvDxXMuvAZtKLiPz6+ueEeLVxx xcpA== X-Gm-Message-State: AOAM530uNtAHEiZ5Y8rbk/EJSgP3KKqcV/XNsqFYaX7AZnqcEreqF/vy fQ5b3GhTnD30uSilwoRUs/eoa4GgSw15xkh+ X-Google-Smtp-Source: ABdhPJz9JZ95r6K+HH1BVk05K/4+aDFSVBg9S+MQrpG+S+hV6F3CvL5vn5DIEAk8Fc88BsaeePBD+Q== X-Received: by 2002:a2e:9116:: with SMTP id m22mr9049640ljg.387.1600320650872; Wed, 16 Sep 2020 22:30:50 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:50 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , stable@dpdk.org, Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:17 +0200 Message-Id: <20200917053035.1889989-3-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 02/20] net/ena/base: specify operations of rte_delay 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" ENA_MSLEEP() and ENA_UDELAY() were expecting different behavior - the first one is expecting driver to sleep, while the other, to busy wait. For both cases, the rte_delay_(u|m)s() function was used, which could be either sleep or block, depending on the configuration. To make the macros valid, the operations should be specified directly. Because of that, the rte_delay_us_sleep() and rte_delay_us_block() are now being used. Fixes: 9ba7981ec992 ("ena: add communication layer for DPDK") Cc: stable@dpdk.org Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_plat_dpdk.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index ba7a098f59..d9b728c4d6 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -56,8 +56,8 @@ typedef uint64_t dma_addr_t; #define ENA_ABORT() abort() -#define ENA_MSLEEP(x) rte_delay_ms(x) -#define ENA_UDELAY(x) rte_delay_us(x) +#define ENA_MSLEEP(x) rte_delay_us_sleep(x * 1000) +#define ENA_UDELAY(x) rte_delay_us_block(x) #define ENA_TOUCH(x) ((void)(x)) #define memcpy_toio memcpy From patchwork Thu Sep 17 05:30:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77963 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C9AABA04B6; Thu, 17 Sep 2020 07:31:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 30D871D543; Thu, 17 Sep 2020 07:30:56 +0200 (CEST) Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by dpdk.org (Postfix) with ESMTP id ED01A1D52A for ; Thu, 17 Sep 2020 07:30:52 +0200 (CEST) Received: by mail-lj1-f193.google.com with SMTP id k25so917399ljk.0 for ; Wed, 16 Sep 2020 22:30:52 -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 :mime-version:content-transfer-encoding; bh=oHnYLE5oWva0qoDgQ1HLKmiDDwsGfNWe+UCozxnkjfM=; b=tkrelqSmoOEMm7+HuX2uPyPdIBnLTcrcBsdBuP8XNGRap+5w/gb3ew+FrSc11W5q94 EvnCAkgjmjKuyiFYlFrhEGe4xEUmvqPq0SfYBOGTTLj0bTRhFNvS+8Cef0s7ggBYJfpe iPQtKde6KsJp4rDcd2sr2JAo/hltvcaBB/8CWYMrmJwa9GFXWEy+AxEcfpDH0jBFUzqM 6i47DhMNUpGBK2RSZPNe4bBqTnlxiN1/0gbAiqh10RDJ/kmuW4nuCfG9x7NIDExQClAN lpxlcL7MtB5CBt/E+a30QEKbk1u3nKlbdcoN/kWVXiBHpkY0skm6d5P7z8g21oRgUkdD Kl1Q== 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:mime-version:content-transfer-encoding; bh=oHnYLE5oWva0qoDgQ1HLKmiDDwsGfNWe+UCozxnkjfM=; b=QXFzEo+PtjuUqnJeKUhQzD+4fVNNwRGLd9wrBc9ViHgaBKF6L/O1V33LqLKFr1jk9H hjYgrJEmugXUMNMFgnsQsq7YJCEul5jiwC6aErjmBlXFVLHPhgwtIwR8WIjmPcGAxhfw wCUBivgYEw4XkOD8nM5fjfiMbV0Wtgm0KoKrmmPSSUxj2/RmNPQk1iJEQobXEr1Ju43b +uL+G4JybLHUPwyhtCyu/Tpjmkk1O9Vn94ahdXgjLX/NjNJcY8DXwF+kXEoqTJkuY7jt vfPCJmnSjmVYEwbcKHpAYt2y0zUy5cBoATWN1ykL6OHuooLpeMGBpOZhBje2ZKqI9NvE dwwg== X-Gm-Message-State: AOAM530OqtKAfwWmbteggcuOL22FnK6/ltmyUq27RNnnhzvvvdsthGew tWR0ExJmLok1F/vz99xNKj8tJ/Jq5LdWY1sw X-Google-Smtp-Source: ABdhPJz/SXlqo3xep4rkeh8yeJoyiiRtlo55WaDrdXfcAYMh0uEthPQtlJrNGm+MGZZm+0XY90T6xw== X-Received: by 2002:a2e:8506:: with SMTP id j6mr8819846lji.176.1600320652268; Wed, 16 Sep 2020 22:30:52 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:51 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:18 +0200 Message-Id: <20200917053035.1889989-4-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 03/20] net/ena/base: support 'resource busy' admin status 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 admin command could return ENA_ADMIN_RESOURCE_BUSY status, which is meaning that currently the given resource cannot be used. However, the request can be repeted, so it's being converted to the ENA_COM_TRY_AGAIN error code. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index 6257c535b1..0a6a92ebea 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -517,6 +517,8 @@ static int ena_com_comp_status_to_errno(u8 comp_status) case ENA_ADMIN_ILLEGAL_PARAMETER: case ENA_ADMIN_UNKNOWN_ERROR: return ENA_COM_INVAL; + case ENA_ADMIN_RESOURCE_BUSY: + return ENA_COM_TRY_AGAIN; } return ENA_COM_INVAL; From patchwork Thu Sep 17 05:30:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77964 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 117F2A04B6; Thu, 17 Sep 2020 07:31:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 87B571D547; Thu, 17 Sep 2020 07:30:58 +0200 (CEST) Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by dpdk.org (Postfix) with ESMTP id BB1D81D53C for ; Thu, 17 Sep 2020 07:30:54 +0200 (CEST) Received: by mail-lj1-f182.google.com with SMTP id u4so868599ljd.10 for ; Wed, 16 Sep 2020 22:30:54 -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 :mime-version:content-transfer-encoding; bh=jF21iGMl/L8zE5QFjjIM+typr5EYFILT5YadTokO7Hg=; b=QGTkkFVycIFB6FAkdfZ/Y2kyjT7RtdvmdjtFIMDLl7B20m4+7aBkGBFiSfgp1QO1ZY KyJ9/BGNkZrBbH9QUNOKMUKoIQ4Uhfyz1jUAX4EB+ol3fLom2fR+T9ICLrqvHhD38yIX E8whsnk81t+ksPmV+M7Uy2AxvzjfE0GplE/sSAF4pAeKy1FETTtqKgb+32giT6NSdbs/ 8Hde6CKHrYJYtSgrqANJSmutH/tY1z6rTs/j1KJDgwDks6r5YEtbs8mt84OSAXvfi9eD B9W1gNZPX3ZWOqsfJbln7zijgPVIsY8BxDeXby2jhvHZwCppJiZh8BTabnlKZZ78VK6P DJfg== 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:mime-version:content-transfer-encoding; bh=jF21iGMl/L8zE5QFjjIM+typr5EYFILT5YadTokO7Hg=; b=n162pbW6hMLfA4R+I/TyUx37d73XEr0Aq0Pv3aqhn5f7uBhOFqQXqhSq6k+/eGihcw 592nSujqR0eSk8HVnCNlSwSPNylktI37RqQZkOIcNqFbi4y2vvXjaFNlhdND8kCVfE4E 9/t5rLu3TgZotoM3fovQf7cbC/ZGSVqyHGN2X8pi6ZSUWOh05R7uiHm7P3XwsBeU1FC7 VvK8qjxOTVDpbNXqlP8JHqPzmC9yrf+xdvXvEEkkCASH9K0merj6qvvR6yZ5O38IwwS0 4ocmV1kCheAtUtBso5m73ThDK8WCpeC8Z75vejEcVFpBlhaTvL8ZVSYiIemuw9DZ0SPK ZcFQ== X-Gm-Message-State: AOAM533/zOM3OQjRHZgYstTzZo3WgFrUcisE6gmzzc9xKeCTCRXP5J8Q 3pchz3pxe8jjlBpWCa21xG264fyuqKEgUtZ0 X-Google-Smtp-Source: ABdhPJxDd+KOnaMSMzTw9LbyUTVAF81UFPCl5HBZUZitl762//GhQdo+ZvNrwihSTEEejLG+LnKOgg== X-Received: by 2002:a2e:9cd7:: with SMTP id g23mr8951233ljj.183.1600320654047; Wed, 16 Sep 2020 22:30:54 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:52 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:19 +0200 Message-Id: <20200917053035.1889989-5-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 04/20] net/ena/base: exponential delay in polling functions 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" Instead of the fixes, 5 ms delay in the polling functions, use values into given range (by default from 100 us 5000 us) and increase them exponentially each time, the operation isn't finished. This change can improve responsiveness of the driver for the fast operations. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 35 ++++++++++++++++++++-------- drivers/net/ena/base/ena_com.h | 3 +++ drivers/net/ena/base/ena_plat_dpdk.h | 1 + 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index 0a6a92ebea..b4e54318c6 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -34,7 +34,9 @@ #define ENA_REGS_ADMIN_INTR_MASK 1 -#define ENA_POLL_MS 5 +#define ENA_MIN_ADMIN_POLL_US 100 + +#define ENA_MAX_ADMIN_POLL_US 5000 /*****************************************************************************/ /*****************************************************************************/ @@ -524,12 +526,20 @@ static int ena_com_comp_status_to_errno(u8 comp_status) return ENA_COM_INVAL; } +static void ena_delay_exponential_backoff_us(u32 exp, u32 delay_us) +{ + delay_us = ENA_MAX32(ENA_MIN_ADMIN_POLL_US, delay_us); + delay_us = ENA_MIN32(delay_us * (1U << exp), ENA_MAX_ADMIN_POLL_US); + ENA_USLEEP(delay_us); +} + static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_ctx, struct ena_com_admin_queue *admin_queue) { unsigned long flags = 0; ena_time_t timeout; int ret; + u32 exp = 0; timeout = ENA_GET_SYSTEM_TIMEOUT(admin_queue->completion_timeout); @@ -553,7 +563,8 @@ static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_c goto err; } - ENA_MSLEEP(ENA_POLL_MS); + ena_delay_exponential_backoff_us(exp++, + admin_queue->ena_dev->ena_min_poll_delay_us); } if (unlikely(comp_ctx->status == ENA_CMD_ABORTED)) { @@ -947,12 +958,13 @@ static void ena_com_io_queue_free(struct ena_com_dev *ena_dev, static int wait_for_reset_state(struct ena_com_dev *ena_dev, u32 timeout, u16 exp_state) { - u32 val, i; + u32 val, exp = 0; + ena_time_t timeout_stamp; - /* Convert timeout from resolution of 100ms to ENA_POLL_MS */ - timeout = (timeout * 100) / ENA_POLL_MS; + /* Convert timeout from resolution of 100ms to us resolution. */ + timeout_stamp = ENA_GET_SYSTEM_TIMEOUT(100 * 1000 * timeout); - for (i = 0; i < timeout; i++) { + while (1) { val = ena_com_reg_bar_read32(ena_dev, ENA_REGS_DEV_STS_OFF); if (unlikely(val == ENA_MMIO_READ_TIMEOUT)) { @@ -964,10 +976,11 @@ static int wait_for_reset_state(struct ena_com_dev *ena_dev, u32 timeout, exp_state) return 0; - ENA_MSLEEP(ENA_POLL_MS); - } + if (ENA_TIME_EXPIRE(timeout_stamp)) + return ENA_COM_TIMER_EXPIRED; - return ENA_COM_TIMER_EXPIRED; + ena_delay_exponential_backoff_us(exp++, ena_dev->ena_min_poll_delay_us); + } } static bool ena_com_check_supported_feature_id(struct ena_com_dev *ena_dev, @@ -1458,11 +1471,12 @@ void ena_com_wait_for_abort_completion(struct ena_com_dev *ena_dev) { struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue; unsigned long flags = 0; + u32 exp = 0; ENA_SPINLOCK_LOCK(admin_queue->q_lock, flags); while (ATOMIC32_READ(&admin_queue->outstanding_cmds) != 0) { ENA_SPINLOCK_UNLOCK(admin_queue->q_lock, flags); - ENA_MSLEEP(ENA_POLL_MS); + ena_delay_exponential_backoff_us(exp++, ena_dev->ena_min_poll_delay_us); ENA_SPINLOCK_LOCK(admin_queue->q_lock, flags); } ENA_SPINLOCK_UNLOCK(admin_queue->q_lock, flags); @@ -1827,6 +1841,7 @@ int ena_com_admin_init(struct ena_com_dev *ena_dev, if (ret) goto error; + admin_queue->ena_dev = ena_dev; admin_queue->running_state = true; return 0; diff --git a/drivers/net/ena/base/ena_com.h b/drivers/net/ena/base/ena_com.h index 61074eaf63..2acf6d8ae5 100644 --- a/drivers/net/ena/base/ena_com.h +++ b/drivers/net/ena/base/ena_com.h @@ -202,6 +202,7 @@ struct ena_com_stats_admin { struct ena_com_admin_queue { void *q_dmadev; void *bus; + struct ena_com_dev *ena_dev; ena_spinlock_t q_lock; /* spinlock for the admin queue */ struct ena_comp_ctx *comp_ctx; @@ -322,6 +323,8 @@ struct ena_com_dev { struct ena_intr_moder_entry *intr_moder_tbl; struct ena_com_llq_info llq_info; + + u32 ena_min_poll_delay_us; }; struct ena_com_dev_get_features_ctx { diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index d9b728c4d6..ae4fd8f868 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -57,6 +57,7 @@ typedef uint64_t dma_addr_t; #define ENA_ABORT() abort() #define ENA_MSLEEP(x) rte_delay_us_sleep(x * 1000) +#define ENA_USLEEP(x) rte_delay_us_sleep(x) #define ENA_UDELAY(x) rte_delay_us_block(x) #define ENA_TOUCH(x) ((void)(x)) From patchwork Thu Sep 17 05:30:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77965 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9F12EA04B6; Thu, 17 Sep 2020 07:31:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1B06E1D550; Thu, 17 Sep 2020 07:31:00 +0200 (CEST) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by dpdk.org (Postfix) with ESMTP id 002941D540 for ; Thu, 17 Sep 2020 07:30:55 +0200 (CEST) Received: by mail-lj1-f196.google.com with SMTP id s205so887292lja.7 for ; Wed, 16 Sep 2020 22:30:55 -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 :mime-version:content-transfer-encoding; bh=griwyDxyrsBF3QzlrybU5mtXYmQNSdktR2bBNHCizzk=; b=oLdFFx8BEDvk4Uz0Lk1+N1mZcwjM+MEh/jsVM/7iUvdkThQP3eREjOjBfhvvMbmmNp /DN2an/GkqoHzFkyeb4BlULcistJzbiarIK0UjeIjPly+/42LqEX6ZJY55mwUXiKDDKK 9ZlaFOWrBFUXH0jDLuhknzuPclEed59hiR9XiantjVOG1RSWafD0+F1MQYCrRGhkfYIo lowTjFOAd8v7nLbGYfhKN1MDK7hsJsPYI1TfagR52A5cvtxT0AsVa6AlB9coZNw/NZ1m G+ruBdk0BjBd7jIgrOFrwjN3Vg1OWwenygxN5SyhvCsqB9F0r5SJFWSsko+ca6kt88/g hGXw== 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:mime-version:content-transfer-encoding; bh=griwyDxyrsBF3QzlrybU5mtXYmQNSdktR2bBNHCizzk=; b=ZwZKKZ8LT+BfqLpt3AZOXdpjYnHus/AVCKACqSQvcQQ05LffZ7Zjiy7c9hdqwKF5v9 Nqjnrlz7e1d9JTWzozp0/mo/FmgS4PPJKMI/m9kiRStkaKMu8MOlMmoc9WKgGW/qtz97 lAgWpKBwB4/GZHfRqQTvzTPqZTXliwb8jo035VmAJeZrmIINNIIqHBSo//w/HMZIZt8Y J0AsxtQKW+f/uWVsCt7FpF9KDeYTPfV+FULOKs4TkN2C72FZP1SUwL0Re3Q7dbwgeHVD mPX9uMOQbiCd+cpCCLb6tCJBWrQgDm4XaNO1jxuAv2M56b7nO8MWNYtEHmvpKjRw2+Vg 37Vw== X-Gm-Message-State: AOAM530msXh1yRL+mZoYLCbK7bZ1/2O4KH73D4eawx5v8ooDXZ3cgaE0 uo5umf1eeyTcr0K4cm0j3BCzCS56Xr5F4+m6 X-Google-Smtp-Source: ABdhPJxGw4yi+/x4rqqFmVVfgR1Psz7zG6y/w4t8JATqvyU2jX2fTAmqblMbaoqHVYI+c/gQ5yxUcw== X-Received: by 2002:a2e:7119:: with SMTP id m25mr10407129ljc.365.1600320655412; Wed, 16 Sep 2020 22:30:55 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:54 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , stable@dpdk.org, Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:20 +0200 Message-Id: <20200917053035.1889989-6-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 05/20] net/ena/base: fix release of wait event 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 wait event is being accessed without making sure it the completion context exists. The check for that is just below, so it could be used for releasing wait even safely. Fixes: 3adcba9a8987 ("net/ena: update HAL to the newer version") Cc: stable@dpdk.org Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index b4e54318c6..ce239ab164 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -1655,11 +1655,13 @@ void ena_com_admin_destroy(struct ena_com_dev *ena_dev) struct ena_com_aenq *aenq = &ena_dev->aenq; u16 size; - ENA_WAIT_EVENT_DESTROY(admin_queue->comp_ctx->wait_event); - if (admin_queue->comp_ctx) + if (admin_queue->comp_ctx) { + ENA_WAIT_EVENT_DESTROY(admin_queue->comp_ctx->wait_event); ENA_MEM_FREE(ena_dev->dmadev, admin_queue->comp_ctx, (admin_queue->q_depth * sizeof(struct ena_comp_ctx))); + } + admin_queue->comp_ctx = NULL; size = ADMIN_SQ_SIZE(admin_queue->q_depth); if (sq->entries) From patchwork Thu Sep 17 05:30:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77966 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C7EC3A04B6; Thu, 17 Sep 2020 07:31:46 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C2AA91D559; Thu, 17 Sep 2020 07:31:02 +0200 (CEST) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 8692A1D545 for ; Thu, 17 Sep 2020 07:30:57 +0200 (CEST) Received: by mail-lf1-f66.google.com with SMTP id x69so782553lff.3 for ; Wed, 16 Sep 2020 22:30:57 -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 :mime-version:content-transfer-encoding; bh=j8RLwZrzAc4borljaDB7z7SUXyVzCsSP6PK99i3UgA4=; b=OBtfkqECHoUicMkFXcFj87hP1ImcPIX4VzFrmtFYSMrQRnj2w++q+XZncl+1YI+BKz wvkWylWrA6XM5/NpOfhrMYV+IdWjDvMKsGCgUqHhnNgLlUbDt310mepDaScVRxQ3AlvF MOhoDPOaswvUjQBUg9+KEFHwz0Y6Bi+yOB4Miijy52BJi9LT1WWjfIBjHp0EDKX6htZw xUc9+6T5q4TYxlSIuG+1ianpoUv0QmhiUoAqpWkS/dcTKtUgwwDKcMkFRvZCmBKGV5Km tSwET7F5cVktoL/ugjM+HAD9QOu/t/yabnvT2q+6Nsx6vPOfu0lv+0EnSS5zpixWydFj URKQ== 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:mime-version:content-transfer-encoding; bh=j8RLwZrzAc4borljaDB7z7SUXyVzCsSP6PK99i3UgA4=; b=Frk6eWUmh7esaXUPvlGlnbx07m/yM/bUn2fQ7ECR0zlh+sriuGtyLeXZdS2vTFmIuo NBg9YI0LTPdf+ky8rMLza1CzJ/QUM2Yso+BLfVEwM3RPGI/+W1KB4pBDz07qp4d2A3sM MGVO4jjw70K4WCuqyXayGt5Olo15eNnKA5Db8dM6+/aaB+A8Sb3avsv1kL+NJ+wSEmFY 5FQ8YiMVm7wewqqlTc+sn+pHMtroiPxMX4L9jFMCXm30zDmhPI1GbICw5f3R19WVuCOj DvfJ4/BLMkSlN8QiGOYoBDJoFAbHCDdFEyHWJAsk8uEb3HUaB/9N2ByfIecLPO5c3+KK oFfA== X-Gm-Message-State: AOAM533j4Iwfx8ItpbWD+2+iVagIevMecTfHChnQsgNDFeAHvT0Vt1bl gLyAp7RaIf+J5wczfGs90FyZ0RzwkQ64sr3d X-Google-Smtp-Source: ABdhPJxy4kgIb1a067InoQzGKvyKQP+wVRU4oWUfkURoH+49FCqxjMHHf4AQMG20HeagCxf1SdLKZQ== X-Received: by 2002:a19:c304:: with SMTP id t4mr6953028lff.199.1600320656648; Wed, 16 Sep 2020 22:30:56 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:55 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:21 +0200 Message-Id: <20200917053035.1889989-7-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 06/20] net/ena/base: remove MMIOWB_NOT_DEFINED ifdef 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" As there is no replacment for mmiowb() and there is no need to use both versions in the DPDK, this ifdef was simply removed. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index ce239ab164..f660c47551 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -2115,9 +2115,7 @@ void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data) mb(); ENA_REG_WRITE32_RELAXED(dev->bus, (u32)aenq->head, dev->reg_bar + ENA_REGS_AENQ_HEAD_DB_OFF); -#ifndef MMIOWB_NOT_DEFINED mmiowb(); -#endif } int ena_com_dev_reset(struct ena_com_dev *ena_dev, From patchwork Thu Sep 17 05:30:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77967 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id AB446A04B6; Thu, 17 Sep 2020 07:31:55 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3925C1D55E; Thu, 17 Sep 2020 07:31:04 +0200 (CEST) Received: from mail-lf1-f67.google.com (mail-lf1-f67.google.com [209.85.167.67]) by dpdk.org (Postfix) with ESMTP id DB4B01D51E for ; Thu, 17 Sep 2020 07:30:58 +0200 (CEST) Received: by mail-lf1-f67.google.com with SMTP id y11so774217lfl.5 for ; Wed, 16 Sep 2020 22:30:58 -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 :mime-version:content-transfer-encoding; bh=EeYkbuFu1O/PoD2lnDYRTbHm/yzNz/T4151RCGMT2sw=; b=GSYC3XalsEO4WwmMs6tpIiT+yHPQPnGz9RSeJMMy18mBDHN6IJ4kso8REEGyvObsas iQY+VMrxDrGp4eXBnzNNVv9/LnGKMZJm+/bTeD3cGWFm1WiTP8YAyNZD7Nlxmzpf5ob3 Wgv7DapiTGQyx69YfLbJ+WBsJXq4otfLfWgRqHQf7HkIVPHUm0LF8gj/2Q+XDHMRZ3cQ MXxxyjlNijxr0JsNtphKyDR/mL92XIaFpRVCH6GIXZoVEEvjh1cL1w+193ZnqwaM+kYi WXnlQpt1Qn2gVxFhQAJ3+MaEsSnh3TSCAFT7gtuR4XY2NZFN0gm5O2cNagrVoWlc+stC iUzw== 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:mime-version:content-transfer-encoding; bh=EeYkbuFu1O/PoD2lnDYRTbHm/yzNz/T4151RCGMT2sw=; b=aVBSel7sRDTM5JXZMu/HYSn22hniL3ndPX1/K3eLFwej2D7+2kgyvEbz9jN0Omvmxy Pa1R49fmApiZMnD7sdNnx1UZSzHKp5CSXMLeTknobPR+eWijSc4Ru2WjOfx/q4IfMwXl daC3cSSXq8WtzWD+Swh1uUKlKRJ675ZBkmTuj8az99IVjPju/HKQgYjyD2e0JldyusUc Aj9UEkEHz/ooYlG1n2aFAp7Qa7MyCnpEa+TqyoUTYtBZ1lFTBn8falsqDh+dmmwkl0Wu KYTQixeh5p4/Eji8HxHFUs6XQ4K01HY9P8pdncBMTb3ONiMhzgxah0ECxxbbotCpo92f mFOw== X-Gm-Message-State: AOAM530lZ1i2Tbb9wUGtrfrP/rVfJNJtRPgvk8t5FGxuwgyGvKGsGF6A a55INo4wCLEwngdJojrkq30S6ymRsOlLWqNV X-Google-Smtp-Source: ABdhPJwib8nrQ/3x0UPSvYhdw4PfRvSI4s2UCkFJvJobw7MzPDvTetLjdEOXrIXXkz68kj2vcA7cyg== X-Received: by 2002:a19:dd5:: with SMTP id 204mr8240911lfn.579.1600320658185; Wed, 16 Sep 2020 22:30:58 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:57 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:22 +0200 Message-Id: <20200917053035.1889989-8-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 07/20] net/ena/base: rework setup of accelerated LLQ mode 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 purpose of this change is general code simplification and type safety improvement for the logical values. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 21 ++++++++++----------- drivers/net/ena/base/ena_eth_com.h | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index f660c47551..b21c1f8d83 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -610,13 +610,9 @@ static int ena_com_set_llq(struct ena_com_dev *ena_dev) cmd.u.llq.desc_num_before_header_enabled = llq_info->descs_num_before_header; cmd.u.llq.descriptors_stride_ctrl_enabled = llq_info->desc_stride_ctrl; - if (llq_info->disable_meta_caching) - cmd.u.llq.accel_mode.u.set.enabled_flags |= - BIT(ENA_ADMIN_DISABLE_META_CACHING); - - if (llq_info->max_entries_in_tx_burst) - cmd.u.llq.accel_mode.u.set.enabled_flags |= - BIT(ENA_ADMIN_LIMIT_TX_BURST); + cmd.u.llq.accel_mode.u.set.enabled_flags = + BIT(ENA_ADMIN_DISABLE_META_CACHING) | + BIT(ENA_ADMIN_LIMIT_TX_BURST); ret = ena_com_execute_admin_command(admin_queue, (struct ena_admin_aq_entry *)&cmd, @@ -635,6 +631,7 @@ static int ena_com_config_llq_info(struct ena_com_dev *ena_dev, struct ena_llq_configurations *llq_default_cfg) { struct ena_com_llq_info *llq_info = &ena_dev->llq_info; + struct ena_admin_accel_mode_get llq_accel_mode_get; u16 supported_feat; int rc; @@ -738,13 +735,15 @@ static int ena_com_config_llq_info(struct ena_com_dev *ena_dev, llq_info->descs_num_before_header); } /* Check for accelerated queue supported */ + llq_accel_mode_get = llq_features->accel_mode.u.get; + llq_info->disable_meta_caching = - llq_features->accel_mode.u.get.supported_flags & - BIT(ENA_ADMIN_DISABLE_META_CACHING); + !!(llq_accel_mode_get.supported_flags & + BIT(ENA_ADMIN_DISABLE_META_CACHING)); - if (llq_features->accel_mode.u.get.supported_flags & BIT(ENA_ADMIN_LIMIT_TX_BURST)) + if (llq_accel_mode_get.supported_flags & BIT(ENA_ADMIN_LIMIT_TX_BURST)) llq_info->max_entries_in_tx_burst = - llq_features->accel_mode.u.get.max_tx_burst_size / + llq_accel_mode_get.max_tx_burst_size / llq_default_cfg->llq_ring_entry_size_value; rc = ena_com_set_llq(ena_dev); diff --git a/drivers/net/ena/base/ena_eth_com.h b/drivers/net/ena/base/ena_eth_com.h index 3d66237b8d..7dda16cd9f 100644 --- a/drivers/net/ena/base/ena_eth_com.h +++ b/drivers/net/ena/base/ena_eth_com.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates. + * Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates. * All rights reserved. */ From patchwork Thu Sep 17 05:30:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77968 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 91165A04B6; Thu, 17 Sep 2020 07:32:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 829881D562; Thu, 17 Sep 2020 07:31:05 +0200 (CEST) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 735501D554 for ; Thu, 17 Sep 2020 07:31:00 +0200 (CEST) Received: by mail-lf1-f66.google.com with SMTP id x69so782648lff.3 for ; Wed, 16 Sep 2020 22:31:00 -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 :mime-version:content-transfer-encoding; bh=RxNWGt0esRwLrguNnMGRCh7E9ELHdYdWKRyQw7hPsQE=; b=JMBPirzMsYfxq11n7W1xYHnwTOyOCm25wENfcuKDltprS8+aFSpmdZhYf5lJko0RYD ttk6GGBU8G3dKDST4prjZx6rBdDlGWXnkzDTOKLQRiumFQ+Z2AYWD7Fv/D0Oa+1Asezr PFNPIdOQ8j3jo6nKzm5t/ZwvcvAaTUHiFXS4QnNbbaqFtTBIxKw1xhyLM24wgCBJ6xaI GJj8cBYDRpeTcES9R8XLE7WkdXEL8UoBCgBaS/3RLbhORaCTI9JBgT9xGvkQTYkID1a+ zj4KZN+zwhVW9LCBLL/KFdKG8rvsWbqE4scSFQ27tnm2/kH9Z3YXufpaN+W2ybcchc/q 1vvA== 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:mime-version:content-transfer-encoding; bh=RxNWGt0esRwLrguNnMGRCh7E9ELHdYdWKRyQw7hPsQE=; b=iUWGlA34Txsp2GQn0zIavLeQFzC96i5/M8Kcp+WNzngx6AVzw0mQxfxuG5yHCNDmbR JEO8Ym5DEIVLz7ZpQcpynLxj9aQjGYX2PIP+GUerTWeY/rT0J/dX13pTKQQG7OlHpmHW mBFEIa55/m+MIaZQVm6DhiO532KQaJsigxQJNnI/J9hWrR02zEu8oEGmbXMqxP6T7XsL ZoAQC0dmMfrlFuuzm3RggT3uGo7IAaSkyy5xOMZoMc3GMa1+mPjlgm662S2eoaC0pqZE BmcJq4gOPftKOkXtWZz4IojgHQ/Ax2GWPfLI1ClYzeehuQ/mZE3AkYrDXqxkq87O3qTC qwDQ== X-Gm-Message-State: AOAM530DswEIou6Cw6EGz2nmYaVDlixs/XqYKvrd6BZtIrRUAEvggX+k +4Wf4qO+vnCNTl8LxmFIYWdfMqtGcqCVXfyj X-Google-Smtp-Source: ABdhPJyqVoDixwZzWLncE7O/+MKRZV9yuA/TSFGlkQhMbB9PAw1+W0RP1tBOtJ5JrbVXB32UnKEIEA== X-Received: by 2002:a19:be45:: with SMTP id o66mr8251355lff.44.1600320659760; Wed, 16 Sep 2020 22:30:59 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:30:58 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:23 +0200 Message-Id: <20200917053035.1889989-9-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 08/20] net/ena/base: add ENI stats 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 Elastic Netfwork Interface (ENI) stats can be acquired from the HW. They can provide advanced values which can be further used by the application for better flow management. It isn't available to the DPDK application, yet. The PMD must expose them directly. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 19 +++++++++- drivers/net/ena/base/ena_com.h | 9 +++++ .../net/ena/base/ena_defs/ena_admin_defs.h | 37 ++++++++++++++++++- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index b21c1f8d83..1463f5f1d4 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -2206,6 +2206,21 @@ static int ena_get_dev_stats(struct ena_com_dev *ena_dev, return ret; } +int ena_com_get_eni_stats(struct ena_com_dev *ena_dev, + struct ena_admin_eni_stats *stats) +{ + struct ena_com_stats_ctx ctx; + int ret; + + memset(&ctx, 0x0, sizeof(ctx)); + ret = ena_get_dev_stats(ena_dev, &ctx, ENA_ADMIN_GET_STATS_TYPE_ENI); + if (likely(ret == 0)) + memcpy(stats, &ctx.get_resp.u.eni_stats, + sizeof(ctx.get_resp.u.eni_stats)); + + return ret; +} + int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev, struct ena_admin_basic_stats *stats) { @@ -2215,8 +2230,8 @@ int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev, memset(&ctx, 0x0, sizeof(ctx)); ret = ena_get_dev_stats(ena_dev, &ctx, ENA_ADMIN_GET_STATS_TYPE_BASIC); if (likely(ret == 0)) - memcpy(stats, &ctx.get_resp.basic_stats, - sizeof(ctx.get_resp.basic_stats)); + memcpy(stats, &ctx.get_resp.u.basic_stats, + sizeof(ctx.get_resp.u.basic_stats)); return ret; } diff --git a/drivers/net/ena/base/ena_com.h b/drivers/net/ena/base/ena_com.h index 2acf6d8ae5..751bfcdd7e 100644 --- a/drivers/net/ena/base/ena_com.h +++ b/drivers/net/ena/base/ena_com.h @@ -600,6 +600,15 @@ int ena_com_get_dev_attr_feat(struct ena_com_dev *ena_dev, int ena_com_get_dev_basic_stats(struct ena_com_dev *ena_dev, struct ena_admin_basic_stats *stats); +/* ena_com_get_eni_stats - Get extended network interface statistics + * @ena_dev: ENA communication layer struct + * @stats: stats return value + * + * @return: 0 on Success and negative value otherwise. + */ +int ena_com_get_eni_stats(struct ena_com_dev *ena_dev, + struct ena_admin_eni_stats *stats); + /* ena_com_set_dev_mtu - Configure the device mtu. * @ena_dev: ENA communication layer struct * @mtu: mtu value diff --git a/drivers/net/ena/base/ena_defs/ena_admin_defs.h b/drivers/net/ena/base/ena_defs/ena_admin_defs.h index 6d266c4cf4..be1747cd9f 100644 --- a/drivers/net/ena/base/ena_defs/ena_admin_defs.h +++ b/drivers/net/ena/base/ena_defs/ena_admin_defs.h @@ -95,6 +95,8 @@ enum ena_admin_completion_policy_type { enum ena_admin_get_stats_type { ENA_ADMIN_GET_STATS_TYPE_BASIC = 0, ENA_ADMIN_GET_STATS_TYPE_EXTENDED = 1, + /* extra HW stats for specific network interface */ + ENA_ADMIN_GET_STATS_TYPE_ENI = 2, }; enum ena_admin_get_stats_scope { @@ -388,10 +390,43 @@ struct ena_admin_basic_stats { uint32_t tx_drops_high; }; +/* ENI Statistics Command. */ +struct ena_admin_eni_stats { + /* The number of packets shaped due to inbound aggregate BW + * allowance being exceeded + */ + uint64_t bw_in_allowance_exceeded; + + /* The number of packets shaped due to outbound aggregate BW + * allowance being exceeded + */ + uint64_t bw_out_allowance_exceeded; + + /* The number of packets shaped due to PPS allowance being exceeded */ + uint64_t pps_allowance_exceeded; + + /* The number of packets shaped due to connection tracking + * allowance being exceeded and leading to failure in establishment + * of new connections + */ + uint64_t conntrack_allowance_exceeded; + + /* The number of packets shaped due to linklocal packet rate + * allowance being exceeded + */ + uint64_t linklocal_allowance_exceeded; +}; + struct ena_admin_acq_get_stats_resp { struct ena_admin_acq_common_desc acq_common_desc; - struct ena_admin_basic_stats basic_stats; + union { + uint64_t raw[7]; + + struct ena_admin_basic_stats basic_stats; + + struct ena_admin_eni_stats eni_stats; + } u; }; struct ena_admin_get_set_feature_common_desc { From patchwork Thu Sep 17 05:30:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77969 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 00045A04B6; Thu, 17 Sep 2020 07:32:13 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D46EA1D569; Thu, 17 Sep 2020 07:31:06 +0200 (CEST) Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by dpdk.org (Postfix) with ESMTP id D45ED1D559 for ; Thu, 17 Sep 2020 07:31:01 +0200 (CEST) Received: by mail-lf1-f53.google.com with SMTP id z19so779646lfr.4 for ; Wed, 16 Sep 2020 22:31:01 -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 :mime-version:content-transfer-encoding; bh=bfUlrcp2N1NI8HoziMKy7pnA6K0CJi1FC33JD3KhABE=; b=RcdbytBoiGEvFs28shv1WG2k3s8igxVePwteo9JXwlwCUSIxlSRyFV/PqXciRSsmYL IR+p6V6oELByAZfrn7QN2G99J4Rx5Ynlb7lTGVsFIoydd8yMy0TrMCG9eVWdK26+xiWp qijrP5/3AoxbQu15wOGJJnWi9JPeGlXZUDhicRSPLVDlaxTF9W5x2vbXIgn38Ps4ZbK2 lDnbIMhhHHdfCPB6MKjBjvX77uOAYbRgttRrNjgr2qJ1qpXGcFFTZK8WOUItGsPvzcQb QtBMmM4jTyTj4NCv/kSQavCnse/5mxa7InwKa0PWeUucbgwYlzxhy0Jn1OPXoY/RTxxp 6WIw== 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:mime-version:content-transfer-encoding; bh=bfUlrcp2N1NI8HoziMKy7pnA6K0CJi1FC33JD3KhABE=; b=rJ8tqFizuUhGd0cg8BD/rOM2rc847KLzwWSWObIQsxbTeiTnn0uDuV7V7aSKtKGg8w XB23QDAGZ/upXZAyPhKDfdnwBCPtiNrOkJp5T62HvbHGkq7ALrc0R/oW9Gpkc34uolOn NSk50w7dkRBV4EZZCoQgwlRgqzMKVR/cE/QrNkArESY58NBCiYXvekDSCDzne7MeCwUe L/egEmQQS00E9ml2/8Zi9pAkFsmI6MqQpJT0ZAeYFPggx3n0AxUJRyYPu/PxnT1mBKpz ZRjq1+Eh2ekAhtdi16Gr29d7988Eew0NP9bi3DMBBqDHZyJrxqAp5VkRDj/120gDLaXQ LCEA== X-Gm-Message-State: AOAM530gVaqphe8Ppu9GdI9PoititeNXoVQFwK0zLd+ccitlcje8as9i sSDyOQlcza+Cxex8PlCdtTCV1PTXeTtM2NKD X-Google-Smtp-Source: ABdhPJzb7zKSBD37Q1fHG0/1ARJfzJVWzjAYyuhLq218y3eTvrXZ2TcOZ3uoOQ0Nbc/bN9uUvppwZA== X-Received: by 2002:ac2:5298:: with SMTP id q24mr8551477lfm.164.1600320661143; Wed, 16 Sep 2020 22:31:01 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.30.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:00 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:24 +0200 Message-Id: <20200917053035.1889989-10-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 09/20] net/ena/base: split RSS function and hash getters 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" There is no need to keep single function for both hash function and the key. If the caller want's to get only single value, then it had to pass NULL as one of the values, making the API harder to use. Except reading functions from the device, one can also use function ena_com_get_current_hash_function() to get the integer value, which is represeting current hash function stored in the ena_com layer. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 26 +++++++++++++++++++------- drivers/net/ena/base/ena_com.h | 31 ++++++++++++++++++++++++------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index 1463f5f1d4..bf1de09c5c 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -1062,6 +1062,11 @@ static int ena_com_get_feature(struct ena_com_dev *ena_dev, feature_ver); } +int ena_com_get_current_hash_function(struct ena_com_dev *ena_dev) +{ + return ena_dev->rss.hash_func; +} + static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev) { struct ena_admin_feature_rss_flow_hash_control *hash_key = @@ -2408,15 +2413,15 @@ int ena_com_fill_hash_function(struct ena_com_dev *ena_dev, } int ena_com_get_hash_function(struct ena_com_dev *ena_dev, - enum ena_admin_hash_functions *func, - u8 *key) + enum ena_admin_hash_functions *func) { struct ena_rss *rss = &ena_dev->rss; struct ena_admin_get_feat_resp get_resp; - struct ena_admin_feature_rss_flow_hash_control *hash_key = - rss->hash_key; int rc; + if (unlikely(!func)) + return ENA_COM_INVAL; + rc = ena_com_get_feature_ex(ena_dev, &get_resp, ENA_ADMIN_RSS_HASH_FUNCTION, rss->hash_key_dma_addr, @@ -2424,13 +2429,20 @@ int ena_com_get_hash_function(struct ena_com_dev *ena_dev, if (unlikely(rc)) return rc; - /* ENA_FFS returns 1 in case the lsb is set */ + /* ENA_FFS() returns 1 in case the lsb is set */ rss->hash_func = ENA_FFS(get_resp.u.flow_hash_func.selected_func); if (rss->hash_func) rss->hash_func--; - if (func) - *func = rss->hash_func; + *func = rss->hash_func; + + return 0; +} + +int ena_com_get_hash_key(struct ena_com_dev *ena_dev, u8 *key) +{ + struct ena_admin_feature_rss_flow_hash_control *hash_key = + ena_dev->rss.hash_key; if (key) memcpy(key, hash_key->key, (size_t)(hash_key->keys_num) << 2); diff --git a/drivers/net/ena/base/ena_com.h b/drivers/net/ena/base/ena_com.h index 751bfcdd7e..ba367b4ca0 100644 --- a/drivers/net/ena/base/ena_com.h +++ b/drivers/net/ena/base/ena_com.h @@ -645,6 +645,14 @@ int ena_com_rss_init(struct ena_com_dev *ena_dev, u16 log_size); */ void ena_com_rss_destroy(struct ena_com_dev *ena_dev); +/* ena_com_get_current_hash_function - Get RSS hash function + * @ena_dev: ENA communication layer struct + * + * Return the current hash function. + * @return: 0 or one of the ena_admin_hash_functions values. + */ +int ena_com_get_current_hash_function(struct ena_com_dev *ena_dev); + /* ena_com_fill_hash_function - Fill RSS hash function * @ena_dev: ENA communication layer struct * @func: The hash function (Toeplitz or crc) @@ -676,23 +684,32 @@ int ena_com_fill_hash_function(struct ena_com_dev *ena_dev, */ int ena_com_set_hash_function(struct ena_com_dev *ena_dev); -/* ena_com_get_hash_function - Retrieve the hash function and the hash key - * from the device. +/* ena_com_get_hash_function - Retrieve the hash function from the device. * @ena_dev: ENA communication layer struct * @func: hash function - * @key: hash key * - * Retrieve the hash function and the hash key from the device. + * Retrieve the hash function from the device. * - * @note: If the caller called ena_com_fill_hash_function but didn't flash + * @note: If the caller called ena_com_fill_hash_function but didn't flush * it to the device, the new configuration will be lost. * * @return: 0 on Success and negative value otherwise. */ int ena_com_get_hash_function(struct ena_com_dev *ena_dev, - enum ena_admin_hash_functions *func, - u8 *key); + enum ena_admin_hash_functions *func); +/* ena_com_get_hash_key - Retrieve the hash key + * @ena_dev: ENA communication layer struct + * @key: hash key + * + * Retrieve the hash key. + * + * @note: If the caller called ena_com_fill_hash_key but didn't flush + * it to the device, the new configuration will be lost. + * + * @return: 0 on Success and negative value otherwise. + */ +int ena_com_get_hash_key(struct ena_com_dev *ena_dev, u8 *key); /* ena_com_fill_hash_ctrl - Fill RSS hash control * @ena_dev: ENA communication layer struct. * @proto: The protocol to configure. From patchwork Thu Sep 17 05:30:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77970 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7C083A04B6; Thu, 17 Sep 2020 07:32:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D7D951D56D; Thu, 17 Sep 2020 07:31:08 +0200 (CEST) Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by dpdk.org (Postfix) with ESMTP id 2F1101D55C for ; Thu, 17 Sep 2020 07:31:03 +0200 (CEST) Received: by mail-lf1-f44.google.com with SMTP id b12so755617lfp.9 for ; Wed, 16 Sep 2020 22:31:03 -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 :mime-version:content-transfer-encoding; bh=zZlLyEbMXe5z9zzDgiUY8fqJ+y56WoZFwsGOkjcipH0=; b=njFCUP80WCRCy+Eyy9PKSPX+8XQsZFj7JJYkRTJ1TfKEIWyHvWj/2rlOSNxNF9IMLF vp18ELsQnqTij368OSkgilVdf0/pHOiIbiTme5yiHoUERHW9nXxmIE3ihZhe6FM6zSUt 5pZ588c1p7P1SiYPwtisFWv5DuhfAzl+7dXkhtNSG34UEjHBcPZFMaC5clMD6058IqIN 3wLZWESPNzxgOKq43lasQD5tEZq7zOLhkrDLOt1t5b4pL5zRfMrpq3Rp9hLvIuaXjMsU GVXHycEI6ByTYA17xefmZRM655CWN8bl6C5ZAU+rlRnxqbSVqypLAwWrcIhfo/wJTdaq 6ztw== 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:mime-version:content-transfer-encoding; bh=zZlLyEbMXe5z9zzDgiUY8fqJ+y56WoZFwsGOkjcipH0=; b=DrIhIuit5YhoYbbX+cZbpxLwV0m7zTMOarM+Ohlm9GmXgplvj8om4PoBVh5TpVntNE xuXOQ9ja032jQsuJbJ7vhlsGX7vw4ZrC0Wfu6LY3AUx3Ir90ditNtaQ2iw2+TmvBRlOP pl7+6PsLSk9Bhns2ubpqAcdtCCXcv8pabQileM9Gfok19shWzUyogxx2JW2teCZTnoIQ 3weFXq+kfDORUSELyvntcMyGes6dnMjo4EBllYVphU/qQzE9HMcgxyRtvnaYil6wDjnV qxJ3MnxFOQwLBRyPJoL3ON+QVQL2dW5+tHIzVB2C2KdTrepW6Bolohd/DjWqhjSZuZSd JzGg== X-Gm-Message-State: AOAM531iEMWiWbJ2cyfL2BasqaH6VmgU0zH4/12j8wJSzhuNXLfS4E/l yfdbJs/x48Z6PZYnvDQ2r3zpr824tQ7oRT2u X-Google-Smtp-Source: ABdhPJxHe2l2IoN5E2hauOtyRRBCdQ/um+uFN2rFcYAsLVHE/7be3euCVoOget2n9fewaDj539tMHA== X-Received: by 2002:a19:e54:: with SMTP id 81mr10274149lfo.178.1600320662509; Wed, 16 Sep 2020 22:31:02 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:01 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:25 +0200 Message-Id: <20200917053035.1889989-11-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 10/20] net/ena/base: do not use hardcoded RSS key buffer size 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" It's well defined how the RSS key buffer looks from the device perspective, so the constant calue should be used instead of magic number. Also it doesn't has to be calculated dynamically. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 7 +++---- drivers/net/ena/base/ena_defs/ena_admin_defs.h | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index bf1de09c5c..ea7d6788c9 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -1073,11 +1073,10 @@ static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev) (ena_dev->rss).hash_key; ENA_RSS_FILL_KEY(&hash_key->key, sizeof(hash_key->key)); - /* The key is stored in the device in uint32_t array - * as well as the API requires the key to be passed in this - * format. Thus the size of our array should be divided by 4 + /* The key buffer is stored in the device in an array of + * uint32 elements. */ - hash_key->keys_num = sizeof(hash_key->key) / sizeof(uint32_t); + hash_key->keys_num = ENA_ADMIN_RSS_KEY_PARTS; } static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev) diff --git a/drivers/net/ena/base/ena_defs/ena_admin_defs.h b/drivers/net/ena/base/ena_defs/ena_admin_defs.h index be1747cd9f..9cea1c3905 100644 --- a/drivers/net/ena/base/ena_defs/ena_admin_defs.h +++ b/drivers/net/ena/base/ena_defs/ena_admin_defs.h @@ -9,6 +9,8 @@ #define ENA_ADMIN_EXTRA_PROPERTIES_STRING_LEN 32 #define ENA_ADMIN_EXTRA_PROPERTIES_COUNT 32 +#define ENA_ADMIN_RSS_KEY_PARTS 10 + enum ena_admin_aq_opcode { ENA_ADMIN_CREATE_SQ = 1, ENA_ADMIN_DESTROY_SQ = 2, @@ -732,7 +734,7 @@ struct ena_admin_feature_rss_flow_hash_control { uint32_t reserved; - uint32_t key[10]; + uint32_t key[ENA_ADMIN_RSS_KEY_PARTS]; }; struct ena_admin_feature_rss_flow_hash_function { From patchwork Thu Sep 17 05:30:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77971 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 56136A04B6; Thu, 17 Sep 2020 07:32:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C5E361D578; Thu, 17 Sep 2020 07:31:10 +0200 (CEST) Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by dpdk.org (Postfix) with ESMTP id 81C0B1D562 for ; Thu, 17 Sep 2020 07:31:04 +0200 (CEST) Received: by mail-lj1-f195.google.com with SMTP id u4so868854ljd.10 for ; Wed, 16 Sep 2020 22:31:04 -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 :mime-version:content-transfer-encoding; bh=pPz5rk69Z1WDGziL93wwtAdevqXIqIizmEoVab55TrU=; b=TvxaKJEm1GuJxQa2hdj3joIjEF1glicqvdUkB8d+RGba0YrqfxJplGpfmXhstCftEC ptJh3qd67ZX9R+MG/24hOGB1XXLtyJVYFHEcEq1KMDmas80tQ4tFZ7wrGtWI1xIlVvPV zsIpoJRYTkzVthBxSKCICvsy8eZxZwJ6MidaYwH0ixyiMSFx9b1h43pySSYbdGaO+bcr dDzkXaRQJjL1qbxEWNcejUYqDMYFhUwrHDqAdmNF4hecm3fpE5+LUrfdDQUGiFs6Havd JeJgcTwrypPNAykU9BOwOkGnff1guty7dJFEbKQr8HZMLcdXLINxxuBX6sb7BODD7pMr tM8g== 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:mime-version:content-transfer-encoding; bh=pPz5rk69Z1WDGziL93wwtAdevqXIqIizmEoVab55TrU=; b=mEV0dJIkHj/4+76RV15c9snGEf1VYTdq4vxWjWuqACnQGcMzd+26TD6LaHIsMhcVa6 0sGE028pB14NGeXQrmLFNcMy0cNmz/QPlZOyK4gZPiJB5dT1R42DHJQ6qkeY11Rg7Nyf R5ktSsglbVRcfJs89Tunzo18FEp2E2UTO7rsTft3p1hkxK2X54NJAnwI/OyE9/UCRNMm MDyl739+TCdHZ/WGCbd2tzcWu+6kQsmqvyPv7CZ1pPimokRHuye6cghvMIWgzOkrgFeT 4o6HX8FcfO0LIfiaws54aTCti0OVMUZsJym+BdFDFnrnUjx/CSpE09fI2LwBR6GaSnRV AtqQ== X-Gm-Message-State: AOAM532OTdDBkEo6IXw2Oxr8SgIRJlh+KRq0foHivq9K2nGzk4+aMon3 DG2k0Hoy9SoSLMK1dQDYQX+OeElBulXUO8p/ X-Google-Smtp-Source: ABdhPJz8ssND71oY508yJlvGsE7Y8a+3974LAksbfRh6K7P8/31NUYoSGpqSL00G1J6RgKV30+ZFkA== X-Received: by 2002:a2e:2286:: with SMTP id i128mr10405128lji.288.1600320663867; Wed, 16 Sep 2020 22:31:03 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:03 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:26 +0200 Message-Id: <20200917053035.1889989-12-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 11/20] net/ena/base: check for RSS key configuration support 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" Setting RSS hash function could not be supported by the device. In that situation there is no need to fill in default hash key or even allocate hash key. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 13 ++++++++++--- drivers/net/ena/base/ena_defs/ena_admin_defs.h | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index ea7d6788c9..9764bd2f48 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -1083,6 +1083,9 @@ static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev) { struct ena_rss *rss = &ena_dev->rss; + if (!ena_com_check_supported_feature_id(ena_dev, ENA_ADMIN_RSS_HASH_FUNCTION)) + return ENA_COM_UNSUPPORTED; + ENA_MEM_ALLOC_COHERENT(ena_dev->dmadev, sizeof(*rss->hash_key), rss->hash_key, @@ -2719,12 +2722,16 @@ int ena_com_rss_init(struct ena_com_dev *ena_dev, u16 indr_tbl_log_size) if (unlikely(rc)) goto err_indr_tbl; + /* The following function might return unsupported in case the + * device doesn't support setting the key / hash function. We can safely + * ignore this error and have indirection table support only. + */ rc = ena_com_hash_key_allocate(ena_dev); - if (unlikely(rc)) + if (likely(!rc)) + ena_com_hash_key_fill_default_key(ena_dev); + else if (rc != ENA_COM_UNSUPPORTED) goto err_hash_key; - ena_com_hash_key_fill_default_key(ena_dev); - rc = ena_com_hash_ctrl_init(ena_dev); if (unlikely(rc)) goto err_hash_ctrl; diff --git a/drivers/net/ena/base/ena_defs/ena_admin_defs.h b/drivers/net/ena/base/ena_defs/ena_admin_defs.h index 9cea1c3905..30e5eead71 100644 --- a/drivers/net/ena/base/ena_defs/ena_admin_defs.h +++ b/drivers/net/ena/base/ena_defs/ena_admin_defs.h @@ -873,7 +873,8 @@ struct ena_admin_host_info { * 1 : rx_offset * 2 : interrupt_moderation * 3 : map_rx_buf_bidirectional - * 31:4 : reserved + * 4 : rss_configurable_function_key + * 31:5 : reserved */ uint32_t driver_supported_features; }; @@ -1198,6 +1199,8 @@ struct ena_admin_ena_mmio_req_read_less_resp { #define ENA_ADMIN_HOST_INFO_INTERRUPT_MODERATION_MASK BIT(2) #define ENA_ADMIN_HOST_INFO_MAP_RX_BUF_BIDIRECTIONAL_SHIFT 3 #define ENA_ADMIN_HOST_INFO_MAP_RX_BUF_BIDIRECTIONAL_MASK BIT(3) +#define ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_SHIFT 4 +#define ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_MASK BIT(4) /* feature_rss_ind_table */ #define ENA_ADMIN_FEATURE_RSS_IND_TABLE_ONE_ENTRY_UPDATE_MASK BIT(0) @@ -1659,6 +1662,16 @@ static inline void set_ena_admin_host_info_map_rx_buf_bidirectional(struct ena_a p->driver_supported_features |= (val << ENA_ADMIN_HOST_INFO_MAP_RX_BUF_BIDIRECTIONAL_SHIFT) & ENA_ADMIN_HOST_INFO_MAP_RX_BUF_BIDIRECTIONAL_MASK; } +static inline uint32_t get_ena_admin_host_info_rss_configurable_function_key(const struct ena_admin_host_info *p) +{ + return (p->driver_supported_features & ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_MASK) >> ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_SHIFT; +} + +static inline void set_ena_admin_host_info_rss_configurable_function_key(struct ena_admin_host_info *p, uint32_t val) +{ + p->driver_supported_features |= (val << ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_SHIFT) & ENA_ADMIN_HOST_INFO_RSS_CONFIGURABLE_FUNCTION_KEY_MASK; +} + static inline uint8_t get_ena_admin_feature_rss_ind_table_one_entry_update(const struct ena_admin_feature_rss_ind_table *p) { return p->flags & ENA_ADMIN_FEATURE_RSS_IND_TABLE_ONE_ENTRY_UPDATE_MASK; From patchwork Thu Sep 17 05:30:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77972 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 30A79A04B6; Thu, 17 Sep 2020 07:32:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0EF8F1D57E; Thu, 17 Sep 2020 07:31:13 +0200 (CEST) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id DEED91D566 for ; Thu, 17 Sep 2020 07:31:05 +0200 (CEST) Received: by mail-lf1-f66.google.com with SMTP id x69so782832lff.3 for ; Wed, 16 Sep 2020 22:31:05 -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 :mime-version:content-transfer-encoding; bh=ezVq2xd/mapEl8AKjQmhi3tI0BWuXXRaPbNGIPiI59o=; b=dlms8HPD0hpONMIcchIbgFL2EMIYTY9gQcyKKsWYjhiC/veOij6w4Loj6ItAHjHYyw 1Pd7LF1OSi24wsCtCziGEVq3qA7PzR+kpqkgc84R/JzdX2dK6kjZaSUb0ecx9AVKoggP q1cjKyemmMM1RNS0kTnXECslZqv/iC38/RLCq2I0gFW9WG2IUx3m8GeVzKpvui2Ylinf PqWfNI4EmKtqArKpd5iRZetpkB3lJnS7KSIxu+udyTFSbljX1l+L+OUzZK8aLMaLQRMN nZ+CN5E78gMOjeC+PnWQ4UHVh4ipYyaccf6nNcvt1U8F5Wj5xbfKzYSSVpzIdYNMZxjQ qjUw== 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:mime-version:content-transfer-encoding; bh=ezVq2xd/mapEl8AKjQmhi3tI0BWuXXRaPbNGIPiI59o=; b=Q7/v9CvxVNPCtZuBaYQJVb85hoHvo2ynukKSW8Rl1UGqUk7OB9ZBhKbjvPqd37JpVk j0CoD92+7gxZjob+Uxa4gR8UteXqS1aIP8JgJeQ6HGzzPfQvOXvQWO1GOmALaVVRd1El MVU/7W4DoQYjGXdHlWmKqG0zjpw+XNl4rO3SYqY5Qg+yVcvWaH3VqhRKX8HMEwn3MccW QKF9e5YsexMiFWwOkA2M5tLdTKeFJZ0hd1m3sOVsIleV+hCLKcsEZ3XGuUzAmexGfOno c67+FTIsvlRMdXl+YjhhgdEDaTEXX+JQUyChNzaG8zVH+DJs9C8wyBgF0MtQ0ehGM+c6 G3uw== X-Gm-Message-State: AOAM530NFn2bSdapH4ZeyHWPAS8GkrU/Fqu5zy3Sxdr7wwa7bbBN6mUS h5Qa1jC9AD3cKz17ow2cLhDhuGxwXQlaeURn X-Google-Smtp-Source: ABdhPJy6/NAHDK+8w4iNchj26nRjUFR3PAUM7rxpvGeFz6Ac+BMLgft2VkxBls2GAb+q1T+BKfSpfA== X-Received: by 2002:a19:5f5e:: with SMTP id a30mr8516116lfj.64.1600320665219; Wed, 16 Sep 2020 22:31:05 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:04 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:27 +0200 Message-Id: <20200917053035.1889989-13-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 12/20] net/ena/base: minor style adjustments 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" * Function argument style improvement (space after *) * Align indentation of the define * Typo fix in the documentation * Remove extra empty line after license (aligned with other files) * Extra alignment of one line was fixed Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 4 ++-- drivers/net/ena/base/ena_com.h | 4 ++-- drivers/net/ena/base/ena_defs/ena_eth_io_defs.h | 3 +-- drivers/net/ena/base/ena_defs/ena_gen_info.h | 1 - drivers/net/ena/base/ena_defs/ena_regs_defs.h | 3 +-- drivers/net/ena/base/ena_eth_com.c | 4 ++-- 6 files changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index 9764bd2f48..f2668f79c7 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -1701,7 +1701,7 @@ void ena_com_set_admin_polling_mode(struct ena_com_dev *ena_dev, bool polling) ena_dev->admin_queue.polling = polling; } -bool ena_com_get_admin_polling_mode(struct ena_com_dev * ena_dev) +bool ena_com_get_admin_polling_mode(struct ena_com_dev *ena_dev) { return ena_dev->admin_queue.polling; } @@ -2958,8 +2958,8 @@ int ena_com_config_dev_mode(struct ena_com_dev *ena_dev, struct ena_admin_feature_llq_desc *llq_features, struct ena_llq_configurations *llq_default_cfg) { + struct ena_com_llq_info *llq_info = &ena_dev->llq_info; int rc; - struct ena_com_llq_info *llq_info = &(ena_dev->llq_info);; if (!llq_features->max_llq_num) { ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST; diff --git a/drivers/net/ena/base/ena_com.h b/drivers/net/ena/base/ena_com.h index ba367b4ca0..f507aa47ed 100644 --- a/drivers/net/ena/base/ena_com.h +++ b/drivers/net/ena/base/ena_com.h @@ -31,7 +31,7 @@ #define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0 #define ENA_DEFAULT_INTR_DELAY_RESOLUTION 1 -#define ENA_HASH_KEY_SIZE 40 +#define ENA_HASH_KEY_SIZE 40 #define ENA_HW_HINTS_NO_TIMEOUT 0xFFFF @@ -744,7 +744,7 @@ int ena_com_set_hash_ctrl(struct ena_com_dev *ena_dev); * * Retrieve the hash control from the device. * - * @note: If the caller called ena_com_fill_hash_ctrl but didn't flash + * @note: If the caller called ena_com_fill_hash_ctrl but didn't flush * it to the device, the new configuration will be lost. * * @return: 0 on Success and negative value otherwise. diff --git a/drivers/net/ena/base/ena_defs/ena_eth_io_defs.h b/drivers/net/ena/base/ena_defs/ena_eth_io_defs.h index 108bed8520..2b934fff08 100644 --- a/drivers/net/ena/base/ena_defs/ena_eth_io_defs.h +++ b/drivers/net/ena/base/ena_defs/ena_eth_io_defs.h @@ -1,8 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates. + * Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates. * All rights reserved. */ - #ifndef _ENA_ETH_IO_H_ #define _ENA_ETH_IO_H_ diff --git a/drivers/net/ena/base/ena_defs/ena_gen_info.h b/drivers/net/ena/base/ena_defs/ena_gen_info.h index f486e9fe6e..8f55504bc5 100644 --- a/drivers/net/ena/base/ena_defs/ena_gen_info.h +++ b/drivers/net/ena/base/ena_defs/ena_gen_info.h @@ -2,6 +2,5 @@ * Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates. * All rights reserved. */ - #define ENA_GEN_DATE "Wed Sep 25 11:32:57 UTC 2019" #define ENA_GEN_COMMIT "952697a9e0d3" diff --git a/drivers/net/ena/base/ena_defs/ena_regs_defs.h b/drivers/net/ena/base/ena_defs/ena_regs_defs.h index 2d6bf5486e..639cd98c0a 100644 --- a/drivers/net/ena/base/ena_defs/ena_regs_defs.h +++ b/drivers/net/ena/base/ena_defs/ena_regs_defs.h @@ -1,8 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates. + * Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates. * All rights reserved. */ - #ifndef _ENA_REGS_H_ #define _ENA_REGS_H_ diff --git a/drivers/net/ena/base/ena_eth_com.c b/drivers/net/ena/base/ena_eth_com.c index 80d35556cb..9c4e6133f5 100644 --- a/drivers/net/ena/base/ena_eth_com.c +++ b/drivers/net/ena/base/ena_eth_com.c @@ -188,8 +188,8 @@ static int ena_com_sq_update_llq_tail(struct ena_com_io_sq *io_sq) pkt_ctrl->curr_bounce_buf = ena_com_get_next_bounce_buffer(&io_sq->bounce_buf_ctrl); - memset(io_sq->llq_buf_ctrl.curr_bounce_buf, - 0x0, llq_info->desc_list_entry_size); + memset(io_sq->llq_buf_ctrl.curr_bounce_buf, + 0x0, llq_info->desc_list_entry_size); pkt_ctrl->idx = 0; if (unlikely(llq_info->desc_stride_ctrl == ENA_ADMIN_SINGLE_DESC_PER_ENTRY)) From patchwork Thu Sep 17 05:30:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77973 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D3C73A04B6; Thu, 17 Sep 2020 07:32:52 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8BEC81D585; Thu, 17 Sep 2020 07:31:14 +0200 (CEST) Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by dpdk.org (Postfix) with ESMTP id D014C1D56F for ; Thu, 17 Sep 2020 07:31:07 +0200 (CEST) Received: by mail-lj1-f195.google.com with SMTP id r24so900647ljm.3 for ; Wed, 16 Sep 2020 22:31:07 -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 :mime-version:content-transfer-encoding; bh=NrNtQihIvJUKFUEgQMk6tw9kFNfQ9T8KGc+43DQP0Xk=; b=vrZ25P1zUEVpx3s0gtqcLYj9ciCjFnaZ0IGr9aGj7+Xf9JCtCOVD2pnRypLIkhytso VKH1azY+ZK80PdnTuhwLcW3sEU/dUBdRBx1yI+dbOHHnBBZ2tUjr5Yggdw7YD7nEPl8U DKfbgYYECesr0HQ10g8VP/lJXvNjYc0e/+GmxntjGavhspMWyy/Y0Cy0qRJDyDgOtIM0 Hl5cgMCAd+Sf3Bbc/BKyXWN6Jc817URwbs+ncxKcPTp7wzmkuh7seD+FuOnMWVvqGHKs H1Nas4BX0WYzSC/hNI/L1rPZ8gSpcVa/Drew6l61DmBrc6C/+M3pSiJpbJO3VhaJ8G8F XTBA== 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:mime-version:content-transfer-encoding; bh=NrNtQihIvJUKFUEgQMk6tw9kFNfQ9T8KGc+43DQP0Xk=; b=lL2PALyuB9/JUEUdEyOKR7eFVmqlBWM47dxZVVlE9Nj5SoxhxhcPreVTaRnbwgk1qz XInAUXMX5uqZ0ggGNBhNAxo3/j8tcQ8LKuNV7D4dxThyHn7gU1/OxR2hpEPcoQ7zfnkk 8kv6JZmd/0RmOw/NC2VlVEVYaCU5cj2xpUEyp6ox1bPSXMPLo8eGGv/gSTeUxzuakop7 foCxjqFCfu/0+G1B+rteLkKer7xJ1lEnZwbW/QuRmg4lCi075W4NS9rv1//4JXt/oYAd RmgBrcwFp6jDwy8Q2q9EDEEWDejPxxZE8I7jHpHVlJYzmywrWlaZaR1ySHqsdsUxyaD7 WOiQ== X-Gm-Message-State: AOAM532I0qq5ngDeiDJXkVpOJIWJC2hJ/npNTmAwKgXLrdZPygWO554y 1QAdugYO0MTplTbejyXoZ074LgT4NiKraVjt X-Google-Smtp-Source: ABdhPJwqAJb5Zcwn3utzHLeTGF174rR0P0lZPmoIUzwDI7DSrFSAFhdVxBwGyk4HWdvmDrKusugTdw== X-Received: by 2002:a2e:6f1c:: with SMTP id k28mr8809381ljc.297.1600320667103; Wed, 16 Sep 2020 22:31:07 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:06 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:28 +0200 Message-Id: <20200917053035.1889989-14-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 13/20] net/ena/base: add missing unlikely 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" To align the error checking code with other parts of the ena_com, the conditional check is being tested for the error was wrapped inside unlikely(). Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c index f2668f79c7..3686ae05c4 100644 --- a/drivers/net/ena/base/ena_com.c +++ b/drivers/net/ena/base/ena_com.c @@ -2973,7 +2973,7 @@ int ena_com_config_dev_mode(struct ena_com_dev *ena_dev, ena_dev->tx_max_header_size = llq_info->desc_list_entry_size - (llq_info->descs_num_before_header * sizeof(struct ena_eth_io_tx_desc)); - if (ena_dev->tx_max_header_size == 0) { + if (unlikely(ena_dev->tx_max_header_size == 0)) { ena_trc_err("the size of the LLQ entry is smaller than needed\n"); return -EINVAL; } From patchwork Thu Sep 17 05:30:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77974 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2FB4CA04B6; Thu, 17 Sep 2020 07:33:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 15EDB1D591; Thu, 17 Sep 2020 07:31:17 +0200 (CEST) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by dpdk.org (Postfix) with ESMTP id 115EB1D572 for ; Thu, 17 Sep 2020 07:31:09 +0200 (CEST) Received: by mail-lj1-f196.google.com with SMTP id k25so877283ljg.9 for ; Wed, 16 Sep 2020 22:31:09 -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 :mime-version:content-transfer-encoding; bh=eS8AqEDPT0b0AJL6aqy9TokAztCQikR1obZNVVEfFXE=; b=t5gXygfdOdPfM+SffXt+kZdK9gWV962YNX8AlcwrardgSh+91LY4liwo/taNgYttrb nigYk9067XeLcvqO5TbOEUAq2zzWGH4/qpgbqnnaIar8jr7aspW3T8d3vw1Rgmh+Hbsh Ry9Ruf3i2pqx8eS4hH01fta0hvo8avseBcboL+Q2IZiyo84WoMy0un2lkxxtvcZ3GB9z ZMQxAGKaEZQEHGIgIVs0+eTwQUxol/uY2eZNwYcetNm+lktbE3d7perSi3u3XtM0aJGM y1vwdYIOivZUFPDl7vROyqQOU5dGh/dkSAonXEJ3GSJxWPpR/+9hYJ9ZRJAr/GZhm9Xa bbZA== 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:mime-version:content-transfer-encoding; bh=eS8AqEDPT0b0AJL6aqy9TokAztCQikR1obZNVVEfFXE=; b=G/NjXLZiWvI9mMau4GFIgqY809TEn5yZN7JJK9cdTk8fVDQxA2wV2f7HFdlzsn7y/I VjrnPfMf9u4zyevO52owLxm3DJ3W96CHC+9eW6cC3Tq2wKRrQ/ChKcoWW2zGB1w9YlPC Ai5MxZYaSA0VZ47eeB/nNsAK6UcWMwrPnEIHlqBlZ6EudzUhh1iCr9MJ/FSb+lp9qexW PldxhE2iGDpEnupC/7AT1j0daybxNqcg6iP+ezn32dvQ1ofMIM2Tn68U4QjkJQ2Vk9iW sUeqx2KNAYI5MAreUpgj+eG7+giHHM0PCmjxY0t7tyPG0v0xKfp4FWQIFVy+xJZltLli nlgA== X-Gm-Message-State: AOAM533984yvz9QBU8o8tt8MuymqWxPUUYZccKI9fyefWPkr6Z1sKu7q Pz7FqKYLnZBKrxS1XOft7GqrFRQ8SJJFilyo X-Google-Smtp-Source: ABdhPJyxWSm8zAHV2yl12JO6HtLpUJeNuwuBQ0dau9SLfeg+S5N7Drt5P0cIS8HxqLzHTEyhMuGyBA== X-Received: by 2002:a2e:9690:: with SMTP id q16mr8850164lji.401.1600320668498; Wed, 16 Sep 2020 22:31:08 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:07 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:29 +0200 Message-Id: <20200917053035.1889989-15-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 14/20] net/ena/base: store admin stats as u64 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" To minimize chance of integer overflow, the type of admin statistics was changed from u32 to u64. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_com.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/ena/base/ena_com.h b/drivers/net/ena/base/ena_com.h index f507aa47ed..8eacaeab0e 100644 --- a/drivers/net/ena/base/ena_com.h +++ b/drivers/net/ena/base/ena_com.h @@ -192,11 +192,11 @@ struct ena_com_admin_sq { }; struct ena_com_stats_admin { - u32 aborted_cmd; - u32 submitted_cmd; - u32 completed_cmd; - u32 out_of_space; - u32 no_completion; + u64 aborted_cmd; + u64 submitted_cmd; + u64 completed_cmd; + u64 out_of_space; + u64 no_completion; }; struct ena_com_admin_queue { From patchwork Thu Sep 17 05:30:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77975 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A450FA04B6; Thu, 17 Sep 2020 07:33:13 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6F5D31D596; Thu, 17 Sep 2020 07:31:18 +0200 (CEST) Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) by dpdk.org (Postfix) with ESMTP id B2CE51D575 for ; Thu, 17 Sep 2020 07:31:10 +0200 (CEST) Received: by mail-lf1-f65.google.com with SMTP id y2so753634lfy.10 for ; Wed, 16 Sep 2020 22:31:10 -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 :mime-version:content-transfer-encoding; bh=2a2DLrPRn26xfzJe04P1zwAZgYdPlXM5bsK8oD2KReM=; b=pfA8iywvt97IE9gb1NSLDI3XNf0aZykYdlwfe4lQt+DCayrz878aDtDzf2SiVBreW5 iHbOsNl/+Xc2rqvEsnDkvEMsWv7JmyTC97Vx4sV6XiyPK5hwpj7oSGZU+POZdX1EfAPD fm2bBcn5Jih1U/EBP4ZqvalFWANY+hMMlzSIt+bUvNzxKrbHR2Mo1xAkhgJl8msvvG04 3xcYR4LK3eDAA2xna8OJ6/fH3Sn350nxiFDymzFlKZpAyRLacib0wRJOHYk1dv7heInW wur9wULMLj0r2AkeGJg+4yNOBW5hQ78PAoQXOnEZXDUi28Y6NNakfhRe7rqE1AxiUDqH R0Xg== 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:mime-version:content-transfer-encoding; bh=2a2DLrPRn26xfzJe04P1zwAZgYdPlXM5bsK8oD2KReM=; b=Oa3L2V/Wh8IWZn+ebudILSVfpvTDJLDLpEig8MN/eXwaCFoZmKwd+If0ClRrbSe7V7 AX9YEp8qkeRg7ErSG2VU3ax77I0XvwUK9sDtMkujXq28yZuju994avT11m5QWFbphR5l bpwjdFq1WvmGwmatKYFKi9CYX9hBg44jJgRsAKfgv84AMpJ90PJf4hBi2hwipn/0yUZu 4A2mGWhnL/7sCRra+Umkw2qSQvShbUH6XaB3ypOJORnOzV8PXkL/jKzA6Oxhplo2uN/X tIFSGX4iv80xXAV2rS2LVivtV+QXB/YiSU2Jvbo+P/45WtxtY5aQR1OcN1vTAsA+a3AE 1OAg== X-Gm-Message-State: AOAM531ig/c+aQX6LhLoCZKI/Fd5EWzprrART3ao++ykN8NW1da0S4vs CqXEWSrsWlBEoYUpnrsnlE6tjogudaahEI0t X-Google-Smtp-Source: ABdhPJyazgAO4FgJhWduamZ+a22uC66t++32cGjeWfLg6+owNyTAxwWIeIfWKb5r1Bbb/cwEhCFFTA== X-Received: by 2002:a05:6512:49a:: with SMTP id v26mr4975821lfq.490.1600320670042; Wed, 16 Sep 2020 22:31:10 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:08 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:30 +0200 Message-Id: <20200917053035.1889989-16-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 15/20] net/ena/base: add check for meta desc being NULL 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" Static code analysis showed up, that it's possible for meta_desc being NULL. To avoid dereference of the NULL pointer, extra check was added if the pointer is in fact valid. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_eth_com.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ena/base/ena_eth_com.c b/drivers/net/ena/base/ena_eth_com.c index 9c4e6133f5..b6821a7917 100644 --- a/drivers/net/ena/base/ena_eth_com.c +++ b/drivers/net/ena/base/ena_eth_com.c @@ -268,6 +268,9 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, struct ena_eth_io_tx_meta_desc *meta_desc = NULL; meta_desc = get_sq_desc(io_sq); + if (unlikely(!meta_desc)) + return ENA_COM_FAULT; + memset(meta_desc, 0x0, sizeof(struct ena_eth_io_tx_meta_desc)); meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_META_DESC_MASK; From patchwork Thu Sep 17 05:30:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77976 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BB48BA04B6; Thu, 17 Sep 2020 07:33:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9050D1D59C; Thu, 17 Sep 2020 07:31:20 +0200 (CEST) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 290C31D57C for ; Thu, 17 Sep 2020 07:31:12 +0200 (CEST) Received: by mail-lf1-f66.google.com with SMTP id d15so749998lfq.11 for ; Wed, 16 Sep 2020 22:31:12 -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 :mime-version:content-transfer-encoding; bh=uQhraO1g72tWjTGxSAywlOStDpmL/77DQ8ZO6LgDuX4=; b=o31ypeNEnAcLtNUOj9gmDAwqyjJw8ropNn58xUudxn251MkagiuiVk1apS7igz4ljP 739hrlpV4o9KUp0V3MMvikARDapH/00zzje40sIf4x17Unt86YpKayI5IZl/iS7G7uv0 O97TEPPkNh6MoAPz8fI30d4Qehd+Zm+uoZbuC7U+S5DPgyXB0j+hEdCQKeH1zxuOiG0/ uVoxRco1dSv28dKU8b6hqsKpLP1hVaep1begkaA/Pgmazs2+zZrn9WzUUhknWKdTVLgI mVfHu82L2FTDtPvNUNuC9RDD4gDbcgge0p4+pUVowVYhhYQY+Hh+OiBbkQ3LbhLpHiT6 XaHQ== 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:mime-version:content-transfer-encoding; bh=uQhraO1g72tWjTGxSAywlOStDpmL/77DQ8ZO6LgDuX4=; b=fdMIqIw6YaV6ma+aR/FtO5z/DsvtJRSEE1TX6kRl0hXCzSjKUXhbiydA7dbPcISncw /xr7iMgYTYAw1vFR/vGil9h8dys+qHqjjQQ2qZTH0+lxskeVwHKWJ2QxMQVTUSQzrRPS gaWb9G7LCGCI0z+1OgZ1NhEo/Tb18TI+8VrEapz5Z6XTAVaHX9Wl4AOzQZAsc+bvkB+E Dc74kw48W97NGG5F3as38pD88tREKtsnkV0JJA7sgbyKKqHJcv0HM3CGsjmM/JHXtnyh nt5U3Ool/sAl+x1xavQMM24RuobdV4H/kJcDfhSaFeuO2IcGuMOlgKwU+QhGpikQ0B4k uLqA== X-Gm-Message-State: AOAM532Ty/bdYw005GwmHvjQcUi7uwYjr+gsLrh6wnp0dHksmHzgr8XL eLJggHGDTaZFD151aIFGlrYQ/QtKazBpT2f/ X-Google-Smtp-Source: ABdhPJyM4eqqUYSpGGXC4tAtd//biXalDetMeZ+DU7akDHsRrnmiHKdnDP++8ddsDSdKjhObLRTeyg== X-Received: by 2002:a05:6512:2101:: with SMTP id q1mr10198739lfr.157.1600320671384; Wed, 16 Sep 2020 22:31:11 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:10 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:31 +0200 Message-Id: <20200917053035.1889989-17-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 16/20] net/ena/base: convert values to u32 before shifting 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" When filling out meta descriptor, all values should be converted to the desired type (u32 in case of the meta descriptor) to prevent losing the data. For example, io_sq->phase is of type u8. If ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT would be greater then 8, all data would be lost. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_eth_com.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/ena/base/ena_eth_com.c b/drivers/net/ena/base/ena_eth_com.c index b6821a7917..766643f47b 100644 --- a/drivers/net/ena/base/ena_eth_com.c +++ b/drivers/net/ena/base/ena_eth_com.c @@ -278,7 +278,7 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_EXT_VALID_MASK; /* bits 0-9 of the mss */ - meta_desc->word2 |= (ena_meta->mss << + meta_desc->word2 |= ((u32)ena_meta->mss << ENA_ETH_IO_TX_META_DESC_MSS_LO_SHIFT) & ENA_ETH_IO_TX_META_DESC_MSS_LO_MASK; /* bits 10-13 of the mss */ @@ -288,7 +288,7 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, /* Extended meta desc */ meta_desc->len_ctrl |= ENA_ETH_IO_TX_META_DESC_ETH_META_TYPE_MASK; - meta_desc->len_ctrl |= (io_sq->phase << + meta_desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_META_DESC_PHASE_SHIFT) & ENA_ETH_IO_TX_META_DESC_PHASE_MASK; @@ -301,7 +301,7 @@ static int ena_com_create_meta(struct ena_com_io_sq *io_sq, ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_SHIFT) & ENA_ETH_IO_TX_META_DESC_L3_HDR_OFF_MASK; - meta_desc->word2 |= (ena_meta->l4_hdr_len << + meta_desc->word2 |= ((u32)ena_meta->l4_hdr_len << ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_SHIFT) & ENA_ETH_IO_TX_META_DESC_L4_HDR_LEN_IN_WORDS_MASK; @@ -434,16 +434,16 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, if (!have_meta) desc->len_ctrl |= ENA_ETH_IO_TX_DESC_FIRST_MASK; - desc->buff_addr_hi_hdr_sz |= (header_len << + desc->buff_addr_hi_hdr_sz |= ((u32)header_len << ENA_ETH_IO_TX_DESC_HEADER_LENGTH_SHIFT) & ENA_ETH_IO_TX_DESC_HEADER_LENGTH_MASK; - desc->len_ctrl |= (io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) & + desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) & ENA_ETH_IO_TX_DESC_PHASE_MASK; desc->len_ctrl |= ENA_ETH_IO_TX_DESC_COMP_REQ_MASK; /* Bits 0-9 */ - desc->meta_ctrl |= (ena_tx_ctx->req_id << + desc->meta_ctrl |= ((u32)ena_tx_ctx->req_id << ENA_ETH_IO_TX_DESC_REQ_ID_LO_SHIFT) & ENA_ETH_IO_TX_DESC_REQ_ID_LO_MASK; @@ -491,7 +491,7 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc)); - desc->len_ctrl |= (io_sq->phase << + desc->len_ctrl |= ((u32)io_sq->phase << ENA_ETH_IO_TX_DESC_PHASE_SHIFT) & ENA_ETH_IO_TX_DESC_PHASE_MASK; } From patchwork Thu Sep 17 05:30:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77977 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id CB607A04B6; Thu, 17 Sep 2020 07:33:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CBBD71D5A3; Thu, 17 Sep 2020 07:31:21 +0200 (CEST) Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) by dpdk.org (Postfix) with ESMTP id EB40E1D583 for ; Thu, 17 Sep 2020 07:31:13 +0200 (CEST) Received: by mail-lj1-f169.google.com with SMTP id k25so917920ljk.0 for ; Wed, 16 Sep 2020 22:31:13 -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 :mime-version:content-transfer-encoding; bh=fMRSWuDUq8h4HkN7vPjeZ8tPid29yrJTNMESmMIIVqA=; b=JlTUDOdUyQ/IyZMW6HoOgFSNCSUFzTEy0cFOz6RnnOrik+LY/Y/swUGsj9UQsR5BXL cgutPHEJFV9ABWrmzsnKPx+S5tWBxP4kVvERCbi7qrAiro3JDtRiqnicBepC6tSasETL VauNfPbRlxx1v+POjluXE3Bn8/QNhBddMjqci138aR29gD4L8eeCvzrbRGC3ggHw/cn7 VjfxqEVdMd0RfjtW55CmFVlRTI54P4T7B7FYbxVMHGoGJ92NM/cKlbhL76xaS3CIMHUt RisTINiiAyGpXjrTPiTOs7C2PUJ8PZhGQ1rm3Lg4e0aT5RRdXyeg2QJX9dg4SRYzNUO2 VgvA== 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:mime-version:content-transfer-encoding; bh=fMRSWuDUq8h4HkN7vPjeZ8tPid29yrJTNMESmMIIVqA=; b=UweOMneYOAa9t14BwLbsnt4lcKEiRIsOWPBTZfYWx+FHzNuf6FZnu3HJo/a0jAQ3ZU tmPL2q13wp2/+T+I7s6LqJZuL+1c0wammLYSxaExkI2lWpaN6h9LxT/DvBIrpbV3E8l+ TjgyjcLTxtRtTH72kb30NMI0YFgrUggzcJHqLV/O1BRCNLiWL4c4+XZEIkxYN03smRD5 y/v7FSLy0twI1DCJtTEtuCBBSVeCZyGObKkjMrGkt9oASuZn9u2augM8I8LxwDtkUObc H/QwC2mOcBQ1fBGxwXeVPwdgxJ36gpvZHQ9v0a8vR9kYRQxm+jRe5i1hz0qdwr9WVJQH X/uA== X-Gm-Message-State: AOAM533hI1ytgWInnaepXxa8BdvgyLnv+JsxgOznOih+UJgduut1lBfB eYDOWI/01Gr6iFaT6XWUtmyXXJ5hA20rjQW+ X-Google-Smtp-Source: ABdhPJyUqauF9LtB3mAUraieLOnjx7aBBvg8cJldEQW7qn4SkGmw6ka8T91M2/M0SVIK6zsZx974Zw== X-Received: by 2002:a2e:8705:: with SMTP id m5mr8918019lji.459.1600320673244; Wed, 16 Sep 2020 22:31:13 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:12 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:32 +0200 Message-Id: <20200917053035.1889989-18-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 17/20] net/ena/base: simplify loop copying Rx descs 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" Checking for the cdesc not being NULL doesn't have any sense if the idx argument is not 0, so it can be skipped, as the error won't be detected anyway. To simplify that, only the 'i' value is being verified and the code is breaking from the infinite loop in case when all descriptors were copied into the buffer. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_eth_com.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/ena/base/ena_eth_com.c b/drivers/net/ena/base/ena_eth_com.c index 766643f47b..a35d92fbd3 100644 --- a/drivers/net/ena/base/ena_eth_com.c +++ b/drivers/net/ena/base/ena_eth_com.c @@ -557,10 +557,15 @@ int ena_com_rx_pkt(struct ena_com_io_cq *io_cq, ena_rx_ctx->pkt_offset = cdesc->offset; do { - ena_buf->len = cdesc->length; - ena_buf->req_id = cdesc->req_id; - ena_buf++; - } while ((++i < nb_hw_desc) && (cdesc = ena_com_rx_cdesc_idx_to_ptr(io_cq, cdesc_idx + i))); + ena_buf[i].len = cdesc->length; + ena_buf[i].req_id = cdesc->req_id; + + if (++i >= nb_hw_desc) + break; + + cdesc = ena_com_rx_cdesc_idx_to_ptr(io_cq, cdesc_idx + i); + + } while (1); /* Update SQ head ptr */ io_sq->next_to_comp += nb_hw_desc; From patchwork Thu Sep 17 05:30:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77978 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 07BDBA04B6; Thu, 17 Sep 2020 07:33:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 293D81D5A8; Thu, 17 Sep 2020 07:31:23 +0200 (CEST) Received: from mail-lf1-f68.google.com (mail-lf1-f68.google.com [209.85.167.68]) by dpdk.org (Postfix) with ESMTP id A481D1D589 for ; Thu, 17 Sep 2020 07:31:15 +0200 (CEST) Received: by mail-lf1-f68.google.com with SMTP id x77so798955lfa.0 for ; Wed, 16 Sep 2020 22:31:15 -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 :mime-version:content-transfer-encoding; bh=uofg+lPsqobkreQqd0DJIMyXo0ZGv1rOIILKFFfKNQ4=; b=Fm4ElSh7ewZWl3i3DiJvD5j4z1wC29mXw09Y5xJXpJM+H+OTltovT1ailgW1+nYABm mnjSynnMvJtA6VoiIvmavgS03Gbtv0CEBPjb7bPs9nv5JlwM0S4+zfr+NVzEfZTG7/h/ KstrKSfr/vCGRq2vom1fUQvtETaJ8E4klb4olvlyA1GYpLiwUdswge9n0zVAF3sIRc1g QQ7k3EhWAsTpoDkshxUF8KkGh0MHe4lfeSmsvcUQFjvucyNQPecdR/UPjkH976Kmzmr2 trVMpGnS4ieQzytUoPRqKDh26JLYWNDHioKsUEQMlP2xpAhM6p6tc0PSWqL4hMx2+Tcz F3Ew== 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:mime-version:content-transfer-encoding; bh=uofg+lPsqobkreQqd0DJIMyXo0ZGv1rOIILKFFfKNQ4=; b=dIphCTKX60hCOlXUvXBB/ka8kPB2Q/KvZmPytuwO56migofOhxmQ3eHiGwTFVem/R2 9sjnRC1T5/wVUklJGo9l5No3ZerihNCkFVMahqXEh9K9L4TNmbg7JegD+O9qstuKB+c1 1nopXFWkWqi6sLWBy3utNSTwhLKnISlYl6rFAdzH/CtXUCROiG7gCm4sI6vf6HudShJd mlNHoB6hrQLYEyDmKtSZScfegP3dVPlq9LN/CmOd7GW+haZnCP/fvDa3oKY8tJT+269H NGjmANl58yjoFpRooSgH8QGdyiFxAVotyNHH+O1xJoGrRXlpM8XwZBAM6lUyQlaxtd0x 6Mvw== X-Gm-Message-State: AOAM530XVIeCT8HtMhWgao8zl6Rqw3zQ071IX1BbxSxxFwBwe0prsEgQ 8YrAT28bjkneDUNFLLmyfDsUMTb3A81nEGmB X-Google-Smtp-Source: ABdhPJxa7xbEpRC+BPMS0S+pl+1g3H6QfPf3LC+VKXOB+jlgKa21NhYW0kaB68TUurNQXT7uy0359w== X-Received: by 2002:a19:4856:: with SMTP id v83mr2897470lfa.200.1600320675002; Wed, 16 Sep 2020 22:31:15 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:13 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:33 +0200 Message-Id: <20200917053035.1889989-19-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 18/20] net/ena/base: update generation date and commit 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 current ena_com version was generated on 26.04.2020. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/base/ena_defs/ena_gen_info.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ena/base/ena_defs/ena_gen_info.h b/drivers/net/ena/base/ena_defs/ena_gen_info.h index 8f55504bc5..54bbfda11f 100644 --- a/drivers/net/ena/base/ena_defs/ena_gen_info.h +++ b/drivers/net/ena/base/ena_defs/ena_gen_info.h @@ -2,5 +2,5 @@ * Copyright (c) 2015-2020 Amazon.com, Inc. or its affiliates. * All rights reserved. */ -#define ENA_GEN_DATE "Wed Sep 25 11:32:57 UTC 2019" -#define ENA_GEN_COMMIT "952697a9e0d3" +#define ENA_GEN_DATE "Sun Apr 26 13:45:21 DST 2020" +#define ENA_GEN_COMMIT "37aa7c3" From patchwork Thu Sep 17 05:30:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77979 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BAF5DA04B6; Thu, 17 Sep 2020 07:33:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7CBB01D5AC; Thu, 17 Sep 2020 07:31:24 +0200 (CEST) Received: from mail-lj1-f194.google.com (mail-lj1-f194.google.com [209.85.208.194]) by dpdk.org (Postfix) with ESMTP id 1CA461D592 for ; Thu, 17 Sep 2020 07:31:17 +0200 (CEST) Received: by mail-lj1-f194.google.com with SMTP id s205so887786lja.7 for ; Wed, 16 Sep 2020 22:31: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 :mime-version:content-transfer-encoding; bh=o43HPlKaWQzT8RfNIRo9j31AwbMObuS3UTAQM1B4vyY=; b=illgkzxnLOi1joi0C3DA7wJMRXHL5ZtoTjM0M364UFrpHmEFswAnwEuhOJdcVg1Qq0 3qTEJ3sZMVWxSLQ1bS2tVh+X6Rkwu4weGE1hAevW5KSjp+4/nSgq5HfJSIfrh9vo6OUN AP7fklRw2oB54/0+EDbVTh3C0f/BWhFUaJB4H2dBgkrqYyvBr1jcpEwwpzPV0WZMCgBt JR8xIK4lNR1NHHdn5ohizJ7Rqn4kZZYpIOAfQWdO9OcAWvrsrTU2TisQyB0FS4crX+3L Axe7f+h+l3OXDX0AsRtrbMuZTiNmzbtenmgn4wsrIk/04TOu301HVhy8XBb1azsbkxXS aPnQ== 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:mime-version:content-transfer-encoding; bh=o43HPlKaWQzT8RfNIRo9j31AwbMObuS3UTAQM1B4vyY=; b=je6meBKkYl/Amdl5V7wrnoeG+5a2jYbvZgSDioXUtj3jvF6FBa+X6WbbGZV9s5nzcV VuQSbnS+UZEMZNdwX39tQdEAEbVqZKD/e1Ycz3Efy3Lf4PawXxiP2ImlOzY0Rx6gvi29 4PLuAumtqjMKx6OQKI4bhZnmH1BLclcRKar9zoT9atl6gR2C0sdekqNJOe/QuPgL5erU fQAGuvDGTVYiWjl4xxuU7g3WZmlPuJXikQx4FtFt44tvHh4RJP91TFHoDDcAj5SpcRCI UFR3QR3WpLkBlmDMm6WRrf91dJ4OGUF41PjecKTQ6xOt/rrTPLn22ekWeLKVnCZkxoth Bz6g== X-Gm-Message-State: AOAM5316D19/n/pYYiK8Fo6qrVzNzlgPRpJKd/VDPJCnCA5HBKzemjAI PuH4VmPeDT9BsWiloXy7KWIIVlHxCV8ZB2c6 X-Google-Smtp-Source: ABdhPJyLBCBnLIfVdxIORNHNgAuYlKbYslINQXfkd/vUUKJhkiavNOY2bcpCYIMApX15vnJbrLQ+GA== X-Received: by 2002:a2e:7307:: with SMTP id o7mr9212302ljc.323.1600320676470; Wed, 16 Sep 2020 22:31:16 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:15 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:34 +0200 Message-Id: <20200917053035.1889989-20-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 19/20] net/ena: lock dynamic usages of the admin queue 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" There are some cases, where the admin queue commands after the configuration phase finished - for example, the application could ask for the driver statitics from multiple cores at once. As by the design, the admin queue is not multithread safe, the spinlock was added to protect all usages of the admin queue after the configuration is done. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/ena_ethdev.c | 9 +++++++++ drivers/net/ena/ena_ethdev.h | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index 8077519735..97e383315b 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -570,7 +570,9 @@ static int ena_rss_reta_update(struct rte_eth_dev *dev, } } + rte_spinlock_lock(&adapter->admin_lock); rc = ena_com_indirect_table_set(ena_dev); + rte_spinlock_unlock(&adapter->admin_lock); if (unlikely(rc && rc != ENA_COM_UNSUPPORTED)) { PMD_DRV_LOG(ERR, "Cannot flush the indirect table\n"); return rc; @@ -599,7 +601,9 @@ static int ena_rss_reta_query(struct rte_eth_dev *dev, (reta_size > RTE_RETA_GROUP_SIZE && ((reta_conf + 1) == NULL))) return -EINVAL; + rte_spinlock_lock(&adapter->admin_lock); rc = ena_com_indirect_table_get(ena_dev, indirect_table); + rte_spinlock_unlock(&adapter->admin_lock); if (unlikely(rc && rc != ENA_COM_UNSUPPORTED)) { PMD_DRV_LOG(ERR, "cannot get indirect table\n"); return -ENOTSUP; @@ -954,7 +958,10 @@ static int ena_stats_get(struct rte_eth_dev *dev, return -ENOTSUP; memset(&ena_stats, 0, sizeof(ena_stats)); + + rte_spinlock_lock(&adapter->admin_lock); rc = ena_com_get_dev_basic_stats(ena_dev, &ena_stats); + rte_spinlock_unlock(&adapter->admin_lock); if (unlikely(rc)) { PMD_DRV_LOG(ERR, "Could not retrieve statistics from ENA\n"); return rc; @@ -1876,6 +1883,8 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev) goto err_delete_debug_area; } + rte_spinlock_init(&adapter->admin_lock); + rte_intr_callback_register(intr_handle, ena_interrupt_handler_rte, adapter); diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h index 6e24a4e582..ddc80dade0 100644 --- a/drivers/net/ena/ena_ethdev.h +++ b/drivers/net/ena/ena_ethdev.h @@ -200,6 +200,13 @@ struct ena_adapter { u16 max_mtu; struct ena_offloads offloads; + /* The admin queue isn't protected by the lock and is used to + * retrieve statistics from the device. As there is no guarantee that + * application won't try to get statistics from multiple threads, it is + * safer to lock the queue to avoid admin queue failure. + */ + rte_spinlock_t admin_lock; + int id_number; char name[ENA_NAME_MAX_LEN]; u8 mac_addr[RTE_ETHER_ADDR_LEN]; From patchwork Thu Sep 17 05:30:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 77980 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B8FB0A04B7; Thu, 17 Sep 2020 07:34:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9AC121D5B4; Thu, 17 Sep 2020 07:31:25 +0200 (CEST) Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by dpdk.org (Postfix) with ESMTP id B6FAA1D59A for ; Thu, 17 Sep 2020 07:31:18 +0200 (CEST) Received: by mail-lf1-f49.google.com with SMTP id y11so774949lfl.5 for ; Wed, 16 Sep 2020 22:31:18 -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 :mime-version:content-transfer-encoding; bh=YUcSPcuJehal1wAUlyoRBAW/+ZygYJjRRG4JCEOpXPw=; b=LSsp+S/1biXp2o0MffsvuDJUDXBsSZOSfcVwEDYwFePsXXeusWg0gUIRPozvGMpF1w IxsI2v0hIoVbAZ+O9rNQPCJvX1JvKnO/P0bMdwE6UbnvwJPsAXPVvcvDB/lt3AymN5xp Rslp5lPlepgfwWzxKozB5XdLIr2kRa2A+0Znp+duO2QLsZTO2YPqA7I2IfJAmIBtFg1H X9Wj+kjtD7uRp4uYzDWuxOTsHkXOFlGRUFoQy8oO/2QeHbTCgjbq156heLJqMq5P/6iF l3GgPNnL8XzibDTb22fEqRCAtRh83Jt9gvABzl+58P5croo2DUxXLILnA1TeCDZeWP3y WvMw== 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:mime-version:content-transfer-encoding; bh=YUcSPcuJehal1wAUlyoRBAW/+ZygYJjRRG4JCEOpXPw=; b=XSi3NNOJI99v47mDz8BTbCF1K/a9S2huBpWZ9gpz2M7sih5a1U8/EsHOy2W2pDnc9j 1F582oSDIZGJPLy/ZIEwCYsBPiJRHpi3sv4U9mOBzyoyg93mXpjBg27Neq2FohpUDEl2 gHg2iNHJbxY938nicueVmoyaAE2llq/OJmMdgkzw+FiUQszYQTuBlYgeBTWQM8zYU0NK /aBIlgQ7sdjS69plu7FfNmxP6dp0WKu6yr3lu4oEMjljXk3mlAPBQW0beztAcVaUMuzQ M7hJZtTFpMF0B+cs6IK9rc52z18ozqhLaJCyQKWttXbhD25VXaqut3mkw6RmFVINK8dJ vEMw== X-Gm-Message-State: AOAM531l3DVCfVHFg5SZ9z3mSg0aJ9gTQH5yueVgbmmuWOhIxLxofqNs 4BwrlHBen6etsMqtQ89DbbgIjBnKKdYdNuX7 X-Google-Smtp-Source: ABdhPJyB6vt2AfIq5gHH8fS64HDsk2316csj5Vd2ca2Bj9/Ld7x18zoLBH7I4/HKlwXo0OM9oEfEYw== X-Received: by 2002:a05:6512:2005:: with SMTP id a5mr8323889lfb.511.1600320677770; Wed, 16 Sep 2020 22:31:17 -0700 (PDT) Received: from mkPC.semihalf.local (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id j3sm5033686lfb.185.2020.09.16.22.31.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Sep 2020 22:31:17 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@amazon.com, igorch@amazon.com, Michal Krawczyk , Marcin Wojtas , Evgeny Schemeilin Date: Thu, 17 Sep 2020 07:30:35 +0200 Message-Id: <20200917053035.1889989-21-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200917053035.1889989-1-mk@semihalf.com> References: <20200917053035.1889989-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 20/20] net/ena: expose ENI stats as additional xstats 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" New HAL allows driver to read extra ENI stats. Exact meaning of each of them can be found in base/ena_defs/ena_admin_defs.h file and structure ena_admin_eni_stats. The ena_eni_stats structure is exactly the same as ena_admin_eni_stats, but it was required to be added for compatibility with xstats macros. Reading ENI stats requires communication with the admin queue. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/ena_ethdev.c | 77 +++++++++++++++++++++++++++++++++++- drivers/net/ena/ena_ethdev.h | 27 +++++++++++++ 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index 97e383315b..0ef18fee2c 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -72,6 +72,9 @@ struct ena_stats { #define ENA_STAT_TX_ENTRY(stat) \ ENA_STAT_ENTRY(stat, tx) +#define ENA_STAT_ENI_ENTRY(stat) \ + ENA_STAT_ENTRY(stat, eni) + #define ENA_STAT_GLOBAL_ENTRY(stat) \ ENA_STAT_ENTRY(stat, dev) @@ -91,6 +94,14 @@ static const struct ena_stats ena_stats_global_strings[] = { ENA_STAT_GLOBAL_ENTRY(tx_drops), }; +static const struct ena_stats ena_stats_eni_strings[] = { + ENA_STAT_ENI_ENTRY(bw_in_allowance_exceeded), + ENA_STAT_ENI_ENTRY(bw_out_allowance_exceeded), + ENA_STAT_ENI_ENTRY(pps_allowance_exceeded), + ENA_STAT_ENI_ENTRY(conntrack_allowance_exceeded), + ENA_STAT_ENI_ENTRY(linklocal_allowance_exceeded), +}; + static const struct ena_stats ena_stats_tx_strings[] = { ENA_STAT_TX_ENTRY(cnt), ENA_STAT_TX_ENTRY(bytes), @@ -114,6 +125,7 @@ static const struct ena_stats ena_stats_rx_strings[] = { }; #define ENA_STATS_ARRAY_GLOBAL ARRAY_SIZE(ena_stats_global_strings) +#define ENA_STATS_ARRAY_ENI ARRAY_SIZE(ena_stats_eni_strings) #define ENA_STATS_ARRAY_TX ARRAY_SIZE(ena_stats_tx_strings) #define ENA_STATS_ARRAY_RX ARRAY_SIZE(ena_stats_rx_strings) @@ -233,6 +245,7 @@ static int ena_process_bool_devarg(const char *key, void *opaque); static int ena_parse_devargs(struct ena_adapter *adapter, struct rte_devargs *devargs); +static int ena_copy_eni_stats(struct ena_adapter *adapter); static const struct eth_dev_ops ena_dev_ops = { .dev_configure = ena_dev_configure, @@ -451,7 +464,7 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev) /* This function calculates the number of xstats based on the current config */ static unsigned int ena_xstats_calc_num(struct rte_eth_dev *dev) { - return ENA_STATS_ARRAY_GLOBAL + + return ENA_STATS_ARRAY_GLOBAL + ENA_STATS_ARRAY_ENI + (dev->data->nb_tx_queues * ENA_STATS_ARRAY_TX) + (dev->data->nb_rx_queues * ENA_STATS_ARRAY_RX); } @@ -2608,6 +2621,31 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, return sent_idx; } +int ena_copy_eni_stats(struct ena_adapter *adapter) +{ + struct ena_admin_eni_stats admin_eni_stats; + int rc; + + rte_spinlock_lock(&adapter->admin_lock); + rc = ena_com_get_eni_stats(&adapter->ena_dev, &admin_eni_stats); + rte_spinlock_unlock(&adapter->admin_lock); + if (rc != 0) { + if (rc == ENA_COM_UNSUPPORTED) { + PMD_DRV_LOG(DEBUG, + "Retrieving ENI metrics is not supported.\n"); + } else { + PMD_DRV_LOG(WARNING, + "Failed to get ENI metrics: %d\n", rc); + } + return rc; + } + + rte_memcpy(&adapter->eni_stats, &admin_eni_stats, + sizeof(struct ena_stats_eni)); + + return 0; +} + /** * DPDK callback to retrieve names of extended device statistics * @@ -2635,6 +2673,10 @@ static int ena_xstats_get_names(struct rte_eth_dev *dev, strcpy(xstats_names[count].name, ena_stats_global_strings[stat].name); + for (stat = 0; stat < ENA_STATS_ARRAY_ENI; stat++, count++) + strcpy(xstats_names[count].name, + ena_stats_eni_strings[stat].name); + for (stat = 0; stat < ENA_STATS_ARRAY_RX; stat++) for (i = 0; i < dev->data->nb_rx_queues; i++, count++) snprintf(xstats_names[count].name, @@ -2690,6 +2732,19 @@ static int ena_xstats_get(struct rte_eth_dev *dev, ((char *)stats_begin + stat_offset)); } + /* Even if the function below fails, we should copy previous (or initial + * values) to keep structure of rte_eth_xstat consistent. + */ + ena_copy_eni_stats(adapter); + for (stat = 0; stat < ENA_STATS_ARRAY_ENI; stat++, count++) { + stat_offset = ena_stats_eni_strings[stat].stat_offset; + stats_begin = &adapter->eni_stats; + + xstats[count].id = count; + xstats[count].value = *((uint64_t *) + ((char *)stats_begin + stat_offset)); + } + for (stat = 0; stat < ENA_STATS_ARRAY_RX; stat++) { for (i = 0; i < dev->data->nb_rx_queues; i++, count++) { stat_offset = ena_stats_rx_strings[stat].stat_offset; @@ -2726,6 +2781,8 @@ static int ena_xstats_get_by_id(struct rte_eth_dev *dev, unsigned int i; int qid; int valid = 0; + bool was_eni_copied = false; + for (i = 0; i < n; ++i) { id = ids[i]; /* Check if id belongs to global statistics */ @@ -2735,8 +2792,24 @@ static int ena_xstats_get_by_id(struct rte_eth_dev *dev, continue; } - /* Check if id belongs to rx queue statistics */ + /* Check if id belongs to ENI statistics */ id -= ENA_STATS_ARRAY_GLOBAL; + if (id < ENA_STATS_ARRAY_ENI) { + /* Avoid reading ENI stats multiple times in a single + * function call, as it requires communication with the + * admin queue. + */ + if (!was_eni_copied) { + was_eni_copied = true; + ena_copy_eni_stats(adapter); + } + values[i] = *((uint64_t *)&adapter->eni_stats + id); + ++valid; + continue; + } + + /* Check if id belongs to rx queue statistics */ + id -= ENA_STATS_ARRAY_ENI; rx_entries = ENA_STATS_ARRAY_RX * dev->data->nb_rx_queues; if (id < rx_entries) { qid = id % dev->data->nb_rx_queues; diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h index ddc80dade0..7bb74a1d06 100644 --- a/drivers/net/ena/ena_ethdev.h +++ b/drivers/net/ena/ena_ethdev.h @@ -171,6 +171,32 @@ struct ena_stats_dev { u64 tx_drops; }; +struct ena_stats_eni { + /* + * The number of packets shaped due to inbound aggregate BW + * allowance being exceeded + */ + uint64_t bw_in_allowance_exceeded; + /* + * The number of packets shaped due to outbound aggregate BW + * allowance being exceeded + */ + uint64_t bw_out_allowance_exceeded; + /* The number of packets shaped due to PPS allowance being exceeded */ + uint64_t pps_allowance_exceeded; + /* + * The number of packets shaped due to connection tracking + * allowance being exceeded and leading to failure in establishment + * of new connections + */ + uint64_t conntrack_allowance_exceeded; + /* + * The number of packets shaped due to linklocal packet rate + * allowance being exceeded + */ + uint64_t linklocal_allowance_exceeded; +}; + struct ena_offloads { bool tso4_supported; bool tx_csum_supported; @@ -231,6 +257,7 @@ struct ena_adapter { uint64_t keep_alive_timeout; struct ena_stats_dev dev_stats; + struct ena_stats_eni eni_stats; bool trigger_reset;