From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 9E1633238; Fri, 15 Sep 2017 12:47:48 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP; 15 Sep 2017 03:47:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,396,1500966000"; d="scan'208";a="900552680" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.220.57]) ([10.237.220.57]) by FMSMGA003.fm.intel.com with ESMTP; 15 Sep 2017 03:47:46 -0700 To: "Zhang, Qi Z" Cc: "dev@dpdk.org" , "stable@dpdk.org" References: <20170820200535.25987-1-qi.z.zhang@intel.com> <5a9052eb-a49e-bc14-1f1a-70a468b148fb@intel.com> <039ED4275CED7440929022BC67E70611530F2289@SHSMSX152.ccr.corp.intel.com> From: Ferruh Yigit Message-ID: <91cb7293-10d0-5cdb-0aa7-897965c494ed@intel.com> Date: Fri, 15 Sep 2017 11:47:46 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <039ED4275CED7440929022BC67E70611530F2289@SHSMSX152.ccr.corp.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/i40e: fix packet count for PF 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: , X-List-Received-Date: Fri, 15 Sep 2017 10:47:49 -0000 On 9/15/2017 11:33 AM, Zhang, Qi Z wrote: > Sorry for late reply > >> -----Original Message----- >> From: Yigit, Ferruh >> Sent: Monday, August 21, 2017 8:43 PM >> To: Zhang, Qi Z ; Wu, Jingjing >> Cc: dev@dpdk.org; stable@dpdk.org >> Subject: Re: [dpdk-stable] [PATCH] net/i40e: fix packet count for PF >> >> On 8/20/2017 9:05 PM, Qi Zhang wrote: >>> Previously, for PF statistics we use VSI register for packet count but >>> use port's register for packet bytes, that cause inconsistent >>> situation of PF statistics when some VF is active, since it will >>> cover VF's packet bytes but not packet count. >>> The patch will take port register for PF packet count back, but still >>> exclude main vsi's discard packet count. >>> Just like pervious fix, its still not perfect,(since RX packet number >>> is over counted when there is VF discard packet) but seems it make the >>> overall better). >> >> What does Linux do for stats calculation? >> I believe it is good to be consistent with it. > > Kernel driver is quite different on the stats calucation, I don't think this patch is going to cover this. > It just try to fix the mismatch between rxbytes and rx_packets on PF. > But your suggestion is considerable Method can be different, but numbers should be same :) Not for this patch, bur for long term, I think having exact stats numbers as Linux should be the target, if this is not the case already. > >> >>> >>> Fixes: 9aace75fc82e ("i40e: fix statistics") >>> Cc: stable@dpdk.org >>> >>> Signed-off-by: Qi Zhang >>> --- >>> drivers/net/i40e/i40e_ethdev.c | 13 +++++++------ >>> 1 file changed, 7 insertions(+), 6 deletions(-) >>> >>> diff --git a/drivers/net/i40e/i40e_ethdev.c >>> b/drivers/net/i40e/i40e_ethdev.c index 5f26e24..63acbb8 100644 >>> --- a/drivers/net/i40e/i40e_ethdev.c >>> +++ b/drivers/net/i40e/i40e_ethdev.c >>> @@ -2664,13 +2664,14 @@ i40e_dev_stats_get(struct rte_eth_dev *dev, >> struct rte_eth_stats *stats) >>> /* call read registers - updates values, now write them to struct */ >>> i40e_read_stats_registers(pf, hw); >>> >>> - stats->ipackets = pf->main_vsi->eth_stats.rx_unicast + >>> - pf->main_vsi->eth_stats.rx_multicast + >>> - pf->main_vsi->eth_stats.rx_broadcast - >>> + stats->ipackets = ns->eth.rx_unicast + >>> + ns->eth.rx_multicast + >>> + ns->eth.rx_broadcast - >>> + ns->eth.rx_discards - >>> pf->main_vsi->eth_stats.rx_discards; >> >> Both port rx_discards and PF rx_discards excluded, is this intentional? >> Won't this cause double exclusion of some rx_discards packets? > > Yes, this is intentional, port rx_discard and VSI rx_discard counts on different part of total drop packets. >> >>> - stats->opackets = pf->main_vsi->eth_stats.tx_unicast + >>> - pf->main_vsi->eth_stats.tx_multicast + >>> - pf->main_vsi->eth_stats.tx_broadcast; >>> + stats->opackets = ns->eth.tx_unicast + >>> + ns->eth.tx_multicast + >>> + ns->eth.tx_broadcast; >>> stats->ibytes = ns->eth.rx_bytes; >>> stats->obytes = ns->eth.tx_bytes; >>> stats->oerrors = ns->eth.tx_errors + >> > > Regards > Qi >