DPDK patches and discussions
 help / color / mirror / Atom feed
From: Lance Richardson <h.lance.richardson@gmail.com>
To: Ajit Khaparde <ajitkhaparde@gmail.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v2 17/17] net/bnxt: modify ring index logic
Date: Wed, 9 Dec 2020 15:49:48 -0500	[thread overview]
Message-ID: <CAH5C7_0jO50VdBzqyExK=GfTtTNuKP9Yj-_E4i3DnWT7f7BEMw@mail.gmail.com> (raw)
In-Reply-To: <20201209192233.6518-18-ajit.khaparde@broadcom.com>

On Wed, Dec 9, 2020 at 2:28 PM Ajit Khaparde <ajitkhaparde@gmail.com> wrote:
>
> Change the ring logic so that the index increments
> unbounded and mask it only when needed.
>
> Modify the existing macros so that the index is not masked.
> Add a new macro RING_IDX() to mask it only when needed.
>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---

<snip>

> index d540e9eee..202291202 100644
> --- a/drivers/net/bnxt/bnxt_rxtx_vec_common.h
> +++ b/drivers/net/bnxt/bnxt_rxtx_vec_common.h
> @@ -105,21 +105,21 @@ bnxt_tx_cmp_vec_fast(struct bnxt_tx_queue *txq, int nr_pkts)
>         struct bnxt_tx_ring_info *txr = txq->tx_ring;
>         uint32_t ring_mask = txr->tx_ring_struct->ring_mask;
>         struct rte_mbuf **free = txq->free;
> -       uint16_t cons = txr->tx_cons;
> +       uint16_t raw_cons = txr->tx_raw_cons;
>         unsigned int blk = 0;
>
>         while (nr_pkts--) {
>                 struct bnxt_sw_tx_bd *tx_buf;
>
> -               tx_buf = &txr->tx_buf_ring[cons];
> -               cons = (cons + 1) & ring_mask;
> +               raw_cons = (raw_cons + 1) & ring_mask;
> +               tx_buf = &txr->tx_buf_ring[raw_cons];

If the intention is (as stated in the commit log) to track the unmasked
index and only mask it when needed, this does not accomplish that,
and if the naming convention is for "raw" indices to refer to the unmasked
version, this might be misleading. Maybe change to this:
                 raw_cons = RING_NEXT(raw_cons);
                 tx_buf = &txr->tx_buf_ring[raw_cons & ring_mask];

>                 free[blk++] = tx_buf->mbuf;
>                 tx_buf->mbuf = NULL;
>         }
>         if (blk)
>                 rte_mempool_put_bulk(free[0]->pool, (void **)free, blk);
>
> -       txr->tx_cons = cons;
> +       txr->tx_raw_cons = raw_cons;
>  }
>
>  static inline void
> @@ -127,7 +127,7 @@ bnxt_tx_cmp_vec(struct bnxt_tx_queue *txq, int nr_pkts)
>  {
>         struct bnxt_tx_ring_info *txr = txq->tx_ring;
>         struct rte_mbuf **free = txq->free;
> -       uint16_t cons = txr->tx_cons;
> +       uint16_t raw_cons = txr->tx_raw_cons;
>         unsigned int blk = 0;
>         uint32_t ring_mask = txr->tx_ring_struct->ring_mask;
>
> @@ -135,8 +135,8 @@ bnxt_tx_cmp_vec(struct bnxt_tx_queue *txq, int nr_pkts)
>                 struct bnxt_sw_tx_bd *tx_buf;
>                 struct rte_mbuf *mbuf;
>
> -               tx_buf = &txr->tx_buf_ring[cons];
> -               cons = (cons + 1) & ring_mask;
> +               raw_cons = (raw_cons + 1) & ring_mask;
> +               tx_buf = &txr->tx_buf_ring[raw_cons];

See previous comment.

>                 mbuf = rte_pktmbuf_prefree_seg(tx_buf->mbuf);
>                 if (unlikely(mbuf == NULL))
>                         continue;
> @@ -151,6 +151,6 @@ bnxt_tx_cmp_vec(struct bnxt_tx_queue *txq, int nr_pkts)
>         if (blk)
>                 rte_mempool_put_bulk(free[0]->pool, (void **)free, blk);
>
> -       txr->tx_cons = cons;
> +       txr->tx_raw_cons = raw_cons;
>  }
>  #endif /* _BNXT_RXTX_VEC_COMMON_H_ */

  reply	other threads:[~2020-12-09 20:50 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09 19:22 [dpdk-dev] [PATCH v2 00/17] fixes and refactoring changes for bnxt Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 01/17] net/bnxt: fix RX rings in RSS redirection table Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 02/17] net/bnxt: fix VNIC config on Rx queue stop Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 03/17] net/bnxt: remove unused field Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 04/17] net/bnxt: release hwrm lock in the error case Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 05/17] net/bnxt: remove references to Thor Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 06/17] net/bnxt: fix to return error when fw command fails Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 07/17] net/bnxt: fix cleanup on mutex init failure Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 08/17] net/bnxt: fix format specifier for unsigned int Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 09/17] net/bnxt: fix max rings computation Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 10/17] net/bnxt: support for 236 queues in NS3 Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 11/17] net/bnxt: use the right function to free mbuf Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 12/17] net/bnxt: remove function declaration Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 13/17] net/bnxt: fix vnic RSS configure function Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 14/17] net/bnxt: fix PF resource query Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 15/17] net/bnxt: changes to indentation and coding style Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 16/17] net/bnxt: add missing comments Ajit Khaparde
2020-12-09 19:22 ` [dpdk-dev] [PATCH v2 17/17] net/bnxt: modify ring index logic Ajit Khaparde
2020-12-09 20:49   ` Lance Richardson [this message]
2020-12-09 23:53 ` [dpdk-dev] [PATCH v3 00/17] fixes and refactoring changes for bnxt Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 01/17] net/bnxt: fix RX rings in RSS redirection table Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 02/17] net/bnxt: fix VNIC config on Rx queue stop Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 03/17] net/bnxt: remove unused field Ajit Khaparde
2020-12-10 15:23     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 04/17] net/bnxt: release hwrm lock in the error case Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 05/17] net/bnxt: remove references to Thor Ajit Khaparde
2020-12-10 15:28     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 06/17] net/bnxt: fix to return error when fw command fails Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 07/17] net/bnxt: fix cleanup on mutex init failure Ajit Khaparde
2020-12-10 15:42     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 08/17] net/bnxt: fix format specifier for unsigned int Ajit Khaparde
2020-12-10 15:54     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 09/17] net/bnxt: fix max rings computation Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 10/17] net/bnxt: support for 236 queues in NS3 Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 11/17] net/bnxt: use the right function to free mbuf Ajit Khaparde
2020-12-10 15:56     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 12/17] net/bnxt: remove function declaration Ajit Khaparde
2020-12-10 15:57     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 13/17] net/bnxt: fix vnic RSS configure function Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 14/17] net/bnxt: fix PF resource query Ajit Khaparde
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 15/17] net/bnxt: changes to indentation and coding style Ajit Khaparde
2020-12-10 15:59     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 16/17] net/bnxt: add missing comments Ajit Khaparde
2020-12-10 16:02     ` Lance Richardson
2020-12-09 23:53   ` [dpdk-dev] [PATCH v3 17/17] net/bnxt: modify ring index logic Ajit Khaparde
2020-12-10 14:23     ` Lance Richardson
2020-12-11  2:42   ` [dpdk-dev] [PATCH v3 00/17] fixes and refactoring changes for bnxt Ajit Khaparde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAH5C7_0jO50VdBzqyExK=GfTtTNuKP9Yj-_E4i3DnWT7f7BEMw@mail.gmail.com' \
    --to=h.lance.richardson@gmail.com \
    --cc=ajitkhaparde@gmail.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).