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 3206BA0547 for ; Mon, 16 Aug 2021 22:37:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2CA6340143; Mon, 16 Aug 2021 22:37:37 +0200 (CEST) Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by mails.dpdk.org (Postfix) with ESMTP id 9EFAF40143 for ; Mon, 16 Aug 2021 22:37:36 +0200 (CEST) Received: by mail-pj1-f46.google.com with SMTP id cp15-20020a17090afb8fb029017891959dcbso828230pjb.2 for ; Mon, 16 Aug 2021 13:37:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version; bh=h0Um6ys9DdwgpgFa8Zg7j52MEp83UpZtwat3B1Ycyg4=; b=KhQj+8vvnTWR1qjzCNiEBi9nAiw4KAAD5Vyr6zf72i8ISCpgnZAKnZ6oqXN0rcKq1Y YwBPyAxltIqMDIARZO7A+uLRvQrGFGZzcIvFmy0WN3xy9oPUS7ZvVXjM9K2eJphr8OQo PfuYSb2q6fsWggNcr20qDNnAiCcsCOii09gCU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version; bh=h0Um6ys9DdwgpgFa8Zg7j52MEp83UpZtwat3B1Ycyg4=; b=ClTsFZqHg9GHVziT9tcWxCiYagJmx9uO737vZQ0q9fyPCy46I/tLs5BO8xUTQNNsfE zBFWXomGogG/52C+u4imS6E4lmw3L3f/3mK9zbvWrMtt60kTN+d1T+9nyyTAm59dwuc/ HmW/6OziJ9Wzf1UmqU6JKjgdAwhh/yul+hfvID3Y1YoGhoPWEUG4E+MDGMUE+xhXzIyO sbyxAAXhxKQMTToSdYwJV0T2LTgwz7ivUZ5CZcqq/GbaNGE8vyziTXCWFkDD5rIe+wEm OJ2Va/scR5NKYuPrfp0MCXWIljxMMLna4HOkWb0TcBWl4LkFbGb5b8RgqRzumo26TQ1f VCcA== X-Gm-Message-State: AOAM532n2RrbaOZQVRCK+xRwNHmjw82xbmN3RGVN3KUwbT/RaKrgTEaU +I4uWjdThm/SFHpnCGwPjBkGUYqswcuFW824KOby5abmnUcNiqDZfCxIarsDzD+5kZdAA3/aoCQ DMsgRS0S2qrgz6+q76rWZHokHZAdLRW9FGnuhf5WT8V17E4WwrirQJ73R8N2sYvm15Nbgi4c= X-Google-Smtp-Source: ABdhPJwmFFZC3fggQGmM8U8Aq1yujbJteTdMNvi321JzLHPvJCBLHBY4wpzWAiCWAiAlSnskBcRIvQ== X-Received: by 2002:a05:6a00:1ace:b0:3e2:2a73:e0a4 with SMTP id f14-20020a056a001ace00b003e22a73e0a4mr402719pfv.73.1629146255151; Mon, 16 Aug 2021 13:37:35 -0700 (PDT) Received: from lrichardson-VirtualBox.dhcp.broadcom.net ([192.19.231.250]) by smtp.gmail.com with ESMTPSA id d20sm59404pfl.32.2021.08.16.13.37.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Aug 2021 13:37:34 -0700 (PDT) From: Lance Richardson To: stable@dpdk.org Cc: Ajit Khaparde Date: Mon, 16 Aug 2021 16:37:00 -0400 Message-Id: <20210816203702.7235-2-lance.richardson@broadcom.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210816203702.7235-1-lance.richardson@broadcom.com> References: <20210816203702.7235-1-lance.richardson@broadcom.com> MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000d9b8ea05c9b32b05" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-stable] [PATCH 19.11 1/3] net/bnxt: fix Rx burst size constraint X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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" --000000000000d9b8ea05c9b32b05 Content-Transfer-Encoding: 8bit [ upstream commit 008feb839f4e2829db8510719f5a393da803fc1b ] The burst receive function should return all packets currently present in the receive ring up to the requested burst size, update vector mode receive functions accordingly. Fixes: 398358341419 ("net/bnxt: support NEON") Fixes: bc4a000f2f53 ("net/bnxt: implement SSE vector mode") Cc: stable@dpdk.org Signed-off-by: Lance Richardson Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 29 ++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c index 7529d0316..369301eb3 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c @@ -203,9 +203,8 @@ bnxt_parse_csum(struct rte_mbuf *mbuf, struct rx_pkt_cmpl_hi *rxcmp1) } } -uint16_t -bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, - uint16_t nb_pkts) +static uint16_t +recv_burst_vec_sse(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) { struct bnxt_rx_queue *rxq = rx_queue; struct bnxt_cp_ring_info *cpr = rxq->cp_ring; @@ -230,9 +229,6 @@ bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, if (rxq->rxrearm_nb >= RTE_BNXT_RXQ_REARM_THRESH) bnxt_rxq_rearm(rxq, rxr); - /* Return no more than RTE_BNXT_MAX_RX_BURST per call. */ - nb_pkts = RTE_MIN(nb_pkts, RTE_BNXT_MAX_RX_BURST); - /* * Make nb_pkts an integer multiple of RTE_BNXT_DESCS_PER_LOOP. * nb_pkts < RTE_BNXT_DESCS_PER_LOOP, just return no packet @@ -354,6 +350,27 @@ bnxt_tx_cmp_vec(struct bnxt_tx_queue *txq, int nr_pkts) txr->tx_cons = cons; } +uint16_t +bnxt_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) +{ + uint16_t cnt = 0; + + while (nb_pkts > RTE_BNXT_MAX_RX_BURST) { + uint16_t burst; + + burst = recv_burst_vec_sse(rx_queue, rx_pkts + cnt, + RTE_BNXT_MAX_RX_BURST); + + cnt += burst; + nb_pkts -= burst; + + if (burst < RTE_BNXT_MAX_RX_BURST) + return cnt; + } + + return cnt + recv_burst_vec_sse(rx_queue, rx_pkts + cnt, nb_pkts); +} + static void bnxt_handle_tx_cp_vec(struct bnxt_tx_queue *txq) { -- 2.25.1 --000000000000d9b8ea05c9b32b05--