From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9A387A04DD for ; Wed, 21 Oct 2020 07:53:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E72D2AC85; Wed, 21 Oct 2020 07:53:31 +0200 (CEST) Received: from mail-ot1-f68.google.com (mail-ot1-f68.google.com [209.85.210.68]) by dpdk.org (Postfix) with ESMTP id 6525BAC65 for ; Wed, 21 Oct 2020 07:53:28 +0200 (CEST) Received: by mail-ot1-f68.google.com with SMTP id e20so815551otj.11 for ; Tue, 20 Oct 2020 22:53:28 -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=wqPIefLJ0UF18c85F2ZIjcQoGsw0hbNN/IYC9VtaohM=; b=TcBlqqPjKNQb6iBA29QKbjcH+Y8Wers/YJAe2ZZwK74+ZhuJSvCO87NCL7PK1qUFO4 5JNAYDQKCFQkMv/qSvGXOMturQI7k+mcbJIqLkLlgTMG9jaQf2C2bK2pKtqdPCykweqK 9PTz2uVE1Topf9FzOjTs5NbEy0Gcreof4dm8c= 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=wqPIefLJ0UF18c85F2ZIjcQoGsw0hbNN/IYC9VtaohM=; b=op8vc4fCvcX7RAEvNFByJzZxTqvdxeyjV8RfgQITDN6Rax9lgKJuiemkgHKnsT7gUY TK/W65tMg1ZQwkeaH1b6OU03tLLQo0PvPdIX6VSBDMxIzZPjiLDtfxeh6j6O2m5HqumM vtGsRchMyszQt9oNoVgiyXjxN4qFpHgiPHyE0sLoasVgiznMJxHb7aXqXMNhh+4t4ByG Hvs7/lfo/lswqqyxe3xWuV1+77M48GkoSByZOnXYPtaUWjwKWYdPF0qQLw06Q2UpDPH9 uBR0Aom5sqwRiZ+WuydSnQt1wuCMSZtTX6mB34RS8zJWDJIyRqyRDbxwakeo/+AXTk0Y zGkg== X-Gm-Message-State: AOAM530XBoYci2W2pTvpjlCpL8Piy0xF6UMwR5zNfDbqNgHWvrgFJOl0 5D+WkHik/iMbrrKi4IUfMQTPzYwZ1XcVDa5ERJG9NA== X-Google-Smtp-Source: ABdhPJy/Ya7/z1uY87deqFo1vW9VkOoikj+5V29Ej19+FVD9eAirUAIYkns/GP5Wz0m9Fwtq/eBqAFm46B7eznmVQHs= X-Received: by 2002:a9d:1909:: with SMTP id j9mr1424986ota.283.1603259606498; Tue, 20 Oct 2020 22:53:26 -0700 (PDT) MIME-Version: 1.0 References: <20200616153613.1071713-1-ferruh.yigit@intel.com> In-Reply-To: <20200616153613.1071713-1-ferruh.yigit@intel.com> From: Ajit Khaparde Date: Tue, 20 Oct 2020 22:53:10 -0700 Message-ID: To: Ferruh Yigit Cc: dpdk-dev , dpdk stable Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-stable] [PATCH] net/bnxt: fix xstats by id X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" On Tue, Jun 16, 2020 at 8:36 AM Ferruh Yigit wrote: > > The xstat by id device operation seems wrong, it fills 'xstats' struct > via 'bnxt_dev_xstats_get_op()' call, but the retrieved values are not > transferred to user input 'values' array. > > ethdev layer 'rte_eth_xstats_get_by_id()' & > 'rte_eth_xstats_get_names_by_id' already provides "by id" support when > device operations are missing. > It is good for PMD to provide these device operations if it has a more > performant way to get by id. But current implementation in PMD already > does same thing with the ethdev APIs, so removing them provides same > functionality. > > Fixes: 88920136688c ("net/bnxt: support xstats get by id") > Cc: stable@dpdk.org > > Signed-off-by: Ferruh Yigit Patch applied to dpdk-next-net-brcm. Thanks > --- > drivers/net/bnxt/bnxt_ethdev.c | 2 - > drivers/net/bnxt/bnxt_stats.c | 69 ---------------------------------- > 2 files changed, 71 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c > index e8b4c058a1..0dcdb44adf 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -4160,8 +4160,6 @@ static const struct eth_dev_ops bnxt_dev_ops = { > .txq_info_get = bnxt_txq_info_get_op, > .dev_led_on = bnxt_dev_led_on_op, > .dev_led_off = bnxt_dev_led_off_op, > - .xstats_get_by_id = bnxt_dev_xstats_get_by_id_op, > - .xstats_get_names_by_id = bnxt_dev_xstats_get_names_by_id_op, > .rx_queue_count = bnxt_rx_queue_count_op, > .rx_descriptor_status = bnxt_rx_descriptor_status_op, > .tx_descriptor_status = bnxt_tx_descriptor_status_op, > diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c > index 8df6922f52..2b753cd1b8 100644 > --- a/drivers/net/bnxt/bnxt_stats.c > +++ b/drivers/net/bnxt/bnxt_stats.c > @@ -827,75 +827,6 @@ int bnxt_dev_xstats_reset_op(struct rte_eth_dev *eth_dev) > return ret; > } > > -int bnxt_dev_xstats_get_by_id_op(struct rte_eth_dev *dev, const uint64_t *ids, > - uint64_t *values, unsigned int limit) > -{ > - struct bnxt *bp = dev->data->dev_private; > - const unsigned int stat_cnt = RTE_DIM(bnxt_rx_stats_strings) + > - RTE_DIM(bnxt_tx_stats_strings) + > - RTE_DIM(bnxt_func_stats_strings) + > - RTE_DIM(bnxt_rx_ext_stats_strings) + > - RTE_DIM(bnxt_tx_ext_stats_strings) + > - bnxt_flow_stats_cnt(bp); > - struct rte_eth_xstat xstats[stat_cnt]; > - uint64_t values_copy[stat_cnt]; > - uint16_t i; > - int rc; > - > - rc = is_bnxt_in_error(bp); > - if (rc) > - return rc; > - > - if (!ids) > - return bnxt_dev_xstats_get_op(dev, xstats, stat_cnt); > - > - bnxt_dev_xstats_get_by_id_op(dev, NULL, values_copy, stat_cnt); > - for (i = 0; i < limit; i++) { > - if (ids[i] >= stat_cnt) { > - PMD_DRV_LOG(ERR, "id value isn't valid"); > - return -EINVAL; > - } > - values[i] = values_copy[ids[i]]; > - } > - return stat_cnt; > -} > - > -int bnxt_dev_xstats_get_names_by_id_op(struct rte_eth_dev *dev, > - struct rte_eth_xstat_name *xstats_names, > - const uint64_t *ids, unsigned int limit) > -{ > - struct bnxt *bp = dev->data->dev_private; > - const unsigned int stat_cnt = RTE_DIM(bnxt_rx_stats_strings) + > - RTE_DIM(bnxt_tx_stats_strings) + > - RTE_DIM(bnxt_func_stats_strings) + > - RTE_DIM(bnxt_rx_ext_stats_strings) + > - RTE_DIM(bnxt_tx_ext_stats_strings) + > - bnxt_flow_stats_cnt(bp); > - struct rte_eth_xstat_name xstats_names_copy[stat_cnt]; > - uint16_t i; > - int rc; > - > - rc = is_bnxt_in_error(bp); > - if (rc) > - return rc; > - > - if (!ids) > - return bnxt_dev_xstats_get_names_op(dev, xstats_names, > - stat_cnt); > - bnxt_dev_xstats_get_names_by_id_op(dev, xstats_names_copy, NULL, > - stat_cnt); > - > - for (i = 0; i < limit; i++) { > - if (ids[i] >= stat_cnt) { > - PMD_DRV_LOG(ERR, "id value isn't valid"); > - return -EINVAL; > - } > - strcpy(xstats_names[i].name, > - xstats_names_copy[ids[i]].name); > - } > - return stat_cnt; > -} > - > /* Update the input context memory with the flow counter IDs > * of the flows that we are interested in. > * Also, update the output tables with the current local values > -- > 2.25.4 >