From patchwork Fri Dec 14 13:18:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 48875 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6EF381BC1E; Fri, 14 Dec 2018 14:19:40 +0100 (CET) Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by dpdk.org (Postfix) with ESMTP id 9CA821BB6F for ; Fri, 14 Dec 2018 14:19:20 +0100 (CET) Received: by mail-lj1-f193.google.com with SMTP id s5-v6so4846871ljd.12 for ; Fri, 14 Dec 2018 05:19:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Pi8SLZKHzKandWenyDGvOb2HK3j3GpKY+B3mTtl4z+w=; b=kbpT6Gtfqk7qg2Ph0ohQBUUD60/WyNjp1mXk+jBHEF3AGhpxXUaeDPGHnr0tUpSsTy a83swMZeaULbMS2po+IWAb5KqQOJQgjoZv93nKrNGKT/Oyvq0LwUdX8hY0Dr9d5IeV2B z2z6pxoSl50o41QeEScFA5ojRK27ATk5fh/UbUju1rJDLe5Fq6ESnchfSBifPXugXoFY RaprBF1Zu+fH11qunWXraKmOuBeujFQytv/OWvHazKqPec7DgCPMW+2rKuAW4sEoAqYR EFCOd5W5Su6iNxTMbJskZ9n9+JMH9xKvi2oJGLTo71fNTa7tAvB/Dajjeyb4YdWZxnE5 Naxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Pi8SLZKHzKandWenyDGvOb2HK3j3GpKY+B3mTtl4z+w=; b=fHTD5SbIxqg/g6EujfATX1j1W3WNLRIz9zHzL1pmDCfmXtuEMo2pGgM7Zbm9TCt8GP 8nh/hwdw3z/mU8xg90TK0NCwRfcEPIP5xE532Yc1kvDTBmfwuwqQ255/wuAuAAOwoiMQ qnOWWs20LOXSdqN/hx+fybu7bJqVLknJD8eD3c8WIlBVQYj2CNqkVR0z0yjtvMXZ5SaK a0BST7y9WzMULauaAqXgShNWdPT8pUzUW/RTUN1dj07CZOwiXC6loi5wlFwV6sOvv3Ty KXrp39eiUElJItylyS4REl6jh/T1rB75aoTKzuFQ/P0owtJr4ibvuJkmSxeIXIk9drr3 2vlw== X-Gm-Message-State: AA+aEWa7WqxvG0zS8+c91p9cpDjXCifiR6SndPb+E04TfFB7HRyKBFlE iQgEAvj7F/Gwc4qlCia7Q9r/Ic2DmC4= X-Google-Smtp-Source: AFSGD/UeM2emdGydZ3cw6CwnnNUT1BLRmmyBJ6MWssLaEtkhXg20ENQ+pBknOA2oHV2UiLh8WNrtZw== X-Received: by 2002:a2e:2281:: with SMTP id i123-v6mr1636762lji.154.1544793559852; Fri, 14 Dec 2018 05:19:19 -0800 (PST) Received: from mkPC.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id o25sm873884lfd.29.2018.12.14.05.19.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Dec 2018 05:19:18 -0800 (PST) From: Michal Krawczyk To: dev@dpdk.org Cc: gtzalik@dpdk.org, mw@dpdk.org, matua@amazon.com, rk@semihalf.com Date: Fri, 14 Dec 2018 14:18:43 +0100 Message-Id: <20181214131846.22439-18-mk@semihalf.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20181214131846.22439-1-mk@semihalf.com> References: <20181214131846.22439-1-mk@semihalf.com> Subject: [dpdk-dev] [PATCH 17/20] net/ena: new way of getting rx drops 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" From: Rafal Kozik The Rx drops cannot be acquired using the older API. Now, it must be read in keep alive message. Signed-off-by: Rafal Kozik Acked-by: Michal Krawczyk --- drivers/net/ena/ena_ethdev.c | 10 ++++++++-- drivers/net/ena/ena_ethdev.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index c3a26d402..2b84cc79d 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -933,6 +933,7 @@ static void ena_stats_restart(struct rte_eth_dev *dev) rte_atomic64_init(&adapter->drv_stats->ierrors); rte_atomic64_init(&adapter->drv_stats->oerrors); rte_atomic64_init(&adapter->drv_stats->rx_nombuf); + rte_atomic64_init(&adapter->drv_stats->rx_drops); } static int ena_stats_get(struct rte_eth_dev *dev, @@ -965,10 +966,9 @@ static int ena_stats_get(struct rte_eth_dev *dev, ena_stats.rx_bytes_low); stats->obytes = __MERGE_64B_H_L(ena_stats.tx_bytes_high, ena_stats.tx_bytes_low); - stats->imissed = __MERGE_64B_H_L(ena_stats.rx_drops_high, - ena_stats.rx_drops_low); /* Driver related stats */ + stats->imissed = rte_atomic64_read(&adapter->drv_stats->rx_drops); stats->ierrors = rte_atomic64_read(&adapter->drv_stats->ierrors); stats->oerrors = rte_atomic64_read(&adapter->drv_stats->oerrors); stats->rx_nombuf = rte_atomic64_read(&adapter->drv_stats->rx_nombuf); @@ -2689,8 +2689,14 @@ static void ena_keep_alive(void *adapter_data, __rte_unused struct ena_admin_aenq_entry *aenq_e) { struct ena_adapter *adapter = (struct ena_adapter *)adapter_data; + struct ena_admin_aenq_keep_alive_desc *desc; + uint64_t rx_drops; adapter->timestamp_wd = rte_get_timer_cycles(); + + desc = (struct ena_admin_aenq_keep_alive_desc *)aenq_e; + rx_drops = ((uint64_t)desc->rx_drops_high << 32) | desc->rx_drops_low; + rte_atomic64_set(&adapter->drv_stats->rx_drops, rx_drops); } /** diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h index 9eca6e63b..309b92f65 100644 --- a/drivers/net/ena/ena_ethdev.h +++ b/drivers/net/ena/ena_ethdev.h @@ -158,6 +158,7 @@ struct ena_driver_stats { rte_atomic64_t ierrors; rte_atomic64_t oerrors; rte_atomic64_t rx_nombuf; + rte_atomic64_t rx_drops; }; struct ena_stats_dev {