From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B33A5A0C4D; Thu, 15 Jul 2021 06:23:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7A3314014D; Thu, 15 Jul 2021 06:23:46 +0200 (CEST) Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by mails.dpdk.org (Postfix) with ESMTP id 8F6D640143 for ; Thu, 15 Jul 2021 06:23:45 +0200 (CEST) Received: by mail-qv1-f52.google.com with SMTP id o9so2213121qvu.5 for ; Wed, 14 Jul 2021 21:23:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PFrZE7kzCpklKT138/F0F9+C6F6+7JGShAlqsvRH/AA=; b=ECCOPo9d/dBw180wPdeZt9UyjqwZTfJCaVUWMgKn1yLfBw/UTt2EelzV7erkU9tIxZ UqMWwGdoAoDVEVnmiKbwwCJAX6EFDOK6csT//e6TbVCkTbP+FYVcdHYbdOUcjY+WlRDk XzznRpo43Rr/KTFQjmI/N6s2DiN3tob5QgH7c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PFrZE7kzCpklKT138/F0F9+C6F6+7JGShAlqsvRH/AA=; b=AczUMTyGUSaTNm1srpC8niV87Kefwn1ZVwdSZYZKGKUrHN4ahIXLPgj0YjZJYrz/+s 2d3A9wsrOPMEBs+M3NOM7LImqTV2/Rhw53DAj2Jo8Zdo0IJrUA4qGFnmiJEU68ytZ5iA h9ISNbnwTmtIajUC0TDQF+L6E//qU/aoZphfN1Qpyf2H13p7skTLjzej2EUhgLhSwtpC HQVfbpEWG8DHdvLVTnqzf9w1tLpAd2Bt3IW2zMdW9Qlb3VsiwqfTANqVLfQHiRz7uJAt dF5pkOusMkeO32qD7MxqGnseLXCNMsnn+HanNSGN9mFA7Y806h44Z28yDI7OsYwM/EZC 9lKA== X-Gm-Message-State: AOAM532rtG7ZedIuL7sMZ7Rrzpu532x6iJAppJCq/Npy+GfH47635zXJ fYyqjrBjLi9z6csl5ToC5MWLcsV2EKJJzjldf/Bm/w== X-Google-Smtp-Source: ABdhPJxw97MrOlzCSJdjgA8hGaPVuUnLtFRqZsUuc2JDu8Xy4RZi/CXSixoq3qvvizr12hwrExwfsA0PAOY+WTVAUVM= X-Received: by 2002:a0c:e905:: with SMTP id a5mr1920216qvo.11.1626323024929; Wed, 14 Jul 2021 21:23:44 -0700 (PDT) MIME-Version: 1.0 References: <20210713133413.28729-1-kalesh-anakkur.purayil@broadcom.com> In-Reply-To: <20210713133413.28729-1-kalesh-anakkur.purayil@broadcom.com> From: Ajit Khaparde Date: Wed, 14 Jul 2021 21:23:28 -0700 Message-ID: To: Kalesh A P Cc: dpdk-dev Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000003510f205c721d677" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [dpdk-dev] [PATCH] net/bnxt: fix to clear cached value of stats in clear stats X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" --0000000000003510f205c721d677 Content-Type: text/plain; charset="UTF-8" On Tue, Jul 13, 2021 at 6:13 AM Kalesh A P < kalesh-anakkur.purayil@broadcom.com> wrote: > From: Kalesh AP > > As part of the workaround put in the commit "219842b9990c", > driver caches the last read stats values from the hardware. > But this is not cleared during the clear stats operation. This > results in showing up stale stats values while reading the stats > after the clear operation. > > Fixes: 219842b9990c ("net/bnxt: workaround spurious zero stats in Thor") > Cc: stable@dpdk.org > > Signed-off-by: Kalesh AP > Reviewed-by: Ajit Khaparde > Reviewed-by: Lance Richardson > Reviewed-by: Somnath Kotur > Patch applied to dpdk-next-net-brcm. > --- > drivers/net/bnxt/bnxt_stats.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c > index c7b23f4..991eafc 100644 > --- a/drivers/net/bnxt/bnxt_stats.c > +++ b/drivers/net/bnxt/bnxt_stats.c > @@ -603,6 +603,16 @@ int bnxt_stats_get_op(struct rte_eth_dev *eth_dev, > return rc; > } > > +static void bnxt_clear_prev_stat(struct bnxt *bp) > +{ > + /* > + * Clear the cached values of stats returned by HW in the previous > + * get operation. > + */ > + memset(bp->prev_rx_ring_stats, 0, sizeof(struct bnxt_ring_stats) * > bp->rx_cp_nr_rings); > + memset(bp->prev_tx_ring_stats, 0, sizeof(struct bnxt_ring_stats) * > bp->tx_cp_nr_rings); > +} > + > int bnxt_stats_reset_op(struct rte_eth_dev *eth_dev) > { > struct bnxt *bp = eth_dev->data->dev_private; > @@ -625,6 +635,8 @@ int bnxt_stats_reset_op(struct rte_eth_dev *eth_dev) > rte_atomic64_clear(&rxq->rx_mbuf_alloc_fail); > } > > + bnxt_clear_prev_stat(bp); > + > return ret; > } > > @@ -933,6 +945,8 @@ int bnxt_dev_xstats_reset_op(struct rte_eth_dev > *eth_dev) > PMD_DRV_LOG(ERR, "Failed to reset xstats: %s\n", > strerror(-ret)); > > + bnxt_clear_prev_stat(bp); > + > return ret; > } > > -- > 2.10.1 > > --0000000000003510f205c721d677--