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 328A1A0564; Fri, 12 Mar 2021 00:57:28 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E39304067E; Fri, 12 Mar 2021 00:57:27 +0100 (CET) Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by mails.dpdk.org (Postfix) with ESMTP id 6D3D74014D for ; Fri, 12 Mar 2021 00:57:26 +0100 (CET) Received: by mail-qv1-f41.google.com with SMTP id 30so3453704qva.9 for ; Thu, 11 Mar 2021 15:57:26 -0800 (PST) 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=RtEUuRdigHeYx91C4TCyG+RrE0POZiNHdBcmluo5V+M=; b=WLvcCUC6S45Yl2KrCiH15osVBjpsv3E8n3saoYQxcijJBOFXlS+llkJJuU259qkhbP xL2cuNTD3idwjKOZIxBPITgAQ8gwURE71Ey+7bvmGF3gVi8llLeoIxDgnUOf73cLfyDR ryj/z1xFZQN38X+ta39wULgXsTmZ54MVEsg8Q= 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=RtEUuRdigHeYx91C4TCyG+RrE0POZiNHdBcmluo5V+M=; b=PF7411yzhL1WrNL8qyFqyKCrGAHAPbnfIzQy6hTVb2mONd3NU3lHHrSdvCHnrpn+sX CoQku+zGhJaEsw+pCKE0iOc9hxbywk0O/VCfLC0yeSp3MFlPnlkQ7J2eMX72TY+mXkTB uVphTvrcjoaJfU5KvhHDhTL/7DkssSi6n/KZylDfxfcmgn8Z0uyMSVOQzWqCYVQ3cvT+ rtyClsQj3MziGxbaQTZvYq74irPGvo+9HMrHLZiIES54AsJtVUaxXBjpS4vEQVNXWgng XeOjeR7ZIBCqfnDuwIfIeh9r2kqsHFdKMeOvQ7Kv4yoYx1QnzNyqCpF0b1+4Z1em9+QB gE6Q== X-Gm-Message-State: AOAM532DGgPfbpusjS4Me8aP9lGMRjF51TfXuQfFcMh8vVqaO4+T8l15 1iZ+8ctnZ45tSTypc07cWmwB2crsqlLsbn0GlaD8VQ== X-Google-Smtp-Source: ABdhPJyyzQb/ZrdssuK6pPrNo+VnsyNlBcKYI0+veRPEyO+kQMmWG51KFLlje/0NT9kMCHOmjYPlMSc0R0EEDPSz6OA= X-Received: by 2002:a05:6214:80d:: with SMTP id df13mr9978370qvb.55.1615507045778; Thu, 11 Mar 2021 15:57:25 -0800 (PST) MIME-Version: 1.0 References: <20210302151608.537865-1-lance.richardson@broadcom.com> In-Reply-To: <20210302151608.537865-1-lance.richardson@broadcom.com> From: Ajit Khaparde Date: Thu, 11 Mar 2021 15:57:09 -0800 Message-ID: To: Lance Richardson Cc: Somnath Kotur , Jerin Jacob , Ruifeng Wang , Bruce Richardson , Konstantin Ananyev , dpdk-dev Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000009cdbae05bd4b8b56" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [dpdk-dev] [PATCH] net/bnxt: don't set mbuf pointers to null in vector PMD 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" --0000000000009cdbae05bd4b8b56 Content-Type: text/plain; charset="UTF-8" On Tue, Mar 2, 2021 at 7:16 AM Lance Richardson wrote: > > Remove code for setting consumed mbuf pointers to NULL from the > vector receive functions as a minor performance optimization. > > Signed-off-by: Lance Richardson > Reviewed-by: Ajit Kumar Khaparde > Reviewed-by: Somnath Kotur Patch applied to dpdk-next-net-brcm. Thanks Shortened/modified the commit headline to "modify mbuf pointer assignment" > --- > drivers/net/bnxt/bnxt_rxq.c | 10 ++++++++++ > drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 17 +---------------- > drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 17 +---------------- > 3 files changed, 12 insertions(+), 32 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c > index f46b10c1c5..d345c37c8d 100644 > --- a/drivers/net/bnxt/bnxt_rxq.c > +++ b/drivers/net/bnxt/bnxt_rxq.c > @@ -212,6 +212,16 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq) > > sw_ring = rxq->rx_ring->rx_buf_ring; > if (sw_ring) { > +#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) > + /* > + * The vector receive burst function does not set used > + * mbuf pointers to NULL, do that here to simplify > + * cleanup logic. > + */ > + for (i = 0; i < rxq->rxrearm_nb; i++) > + sw_ring[rxq->rxrearm_start + i] = NULL; > + rxq->rxrearm_nb = 0; > +#endif > for (i = 0; > i < rxq->rx_ring->rx_ring_struct->ring_size; i++) { > if (sw_ring[i]) { > diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c > index b0981da0f4..3d54d9d59d 100644 > --- a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c > +++ b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c > @@ -274,22 +274,8 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, > num_valid = (sizeof(uint64_t) / sizeof(uint16_t)) - > (__builtin_clzl(valid & desc_valid_mask) / 16); > > - switch (num_valid) { > - case 4: > - rxr->rx_buf_ring[mbcons + 3] = NULL; > - /* FALLTHROUGH */ > - case 3: > - rxr->rx_buf_ring[mbcons + 2] = NULL; > - /* FALLTHROUGH */ > - case 2: > - rxr->rx_buf_ring[mbcons + 1] = NULL; > - /* FALLTHROUGH */ > - case 1: > - rxr->rx_buf_ring[mbcons + 0] = NULL; > + if (num_valid == 0) > break; > - case 0: > - goto out; > - } > > descs_to_mbufs(rxcmp, rxcmp1, mb_init, &rx_pkts[nb_rx_pkts], > rxr); > @@ -299,7 +285,6 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, > break; > } > > -out: > if (nb_rx_pkts) { > rxr->rx_raw_prod = RING_ADV(rxr->rx_raw_prod, nb_rx_pkts); > > diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c > index 7ae6f5c098..7a58434ce9 100644 > --- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c > +++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c > @@ -256,22 +256,8 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, > valid = _mm_cvtsi128_si64(_mm_packs_epi32(info3_v, info3_v)); > num_valid = __builtin_popcountll(valid & desc_valid_mask); > > - switch (num_valid) { > - case 4: > - rxr->rx_buf_ring[mbcons + 3] = NULL; > - /* FALLTHROUGH */ > - case 3: > - rxr->rx_buf_ring[mbcons + 2] = NULL; > - /* FALLTHROUGH */ > - case 2: > - rxr->rx_buf_ring[mbcons + 1] = NULL; > - /* FALLTHROUGH */ > - case 1: > - rxr->rx_buf_ring[mbcons + 0] = NULL; > + if (num_valid == 0) > break; > - case 0: > - goto out; > - } > > descs_to_mbufs(rxcmp, rxcmp1, mbuf_init, &rx_pkts[nb_rx_pkts], > rxr); > @@ -281,7 +267,6 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, > break; > } > > -out: > if (nb_rx_pkts) { > rxr->rx_raw_prod = RING_ADV(rxr->rx_raw_prod, nb_rx_pkts); > > -- > 2.25.1 > --0000000000009cdbae05bd4b8b56--