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 8E4C1A0A0C; Wed, 24 Mar 2021 10:34:43 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4B7534067B; Wed, 24 Mar 2021 10:34:43 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 993C64014F for ; Wed, 24 Mar 2021 10:34:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616578481; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=v+GDbuY5Cr992/Bjs57RAGKbC7/u8EUxye//7hRjNbc=; b=TdqGc0oSpdFV/JXuF0gPqPe4b/yLv9orYV35bGNUF7XoAdxX0ldE2HQ3Kc5Nfc/yBJPCrS Tt7muIWwLnXLNm44pjOy6zAicPNzDhGd1ftuuRwmZvY55LMtN/ZZLVa+lzT0y0nPvCeEc3 hNoZeTAv9LlDIRBkm8ctWqqcRD0SRYg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-312-52CfQjQxMoW9BLWb5Yptfg-1; Wed, 24 Mar 2021 05:34:38 -0400 X-MC-Unique: 52CfQjQxMoW9BLWb5Yptfg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 97C5187139C; Wed, 24 Mar 2021 09:34:37 +0000 (UTC) Received: from bnemeth.users.ipa.redhat.com (ovpn-114-88.ams2.redhat.com [10.36.114.88]) by smtp.corp.redhat.com (Postfix) with ESMTP id 78F3F610AF; Wed, 24 Mar 2021 09:34:36 +0000 (UTC) Message-ID: <28894a1a92722d2a8dca2d7afeceb75b77d6903f.camel@redhat.com> From: Balazs Nemeth To: Jerin Jacob , Igor Russkikh Cc: dpdk-dev , Devendra Singh Rawat , Rasesh Mody Date: Wed, 24 Mar 2021 10:34:35 +0100 In-Reply-To: References: <5df2a5e4-972e-499c-7f23-12cf191d00fd@marvell.com> User-Agent: Evolution 3.38.4 (3.38.4-1.fc33) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=bnemeth@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [EXT] [PATCH 0/8] Optimize qede use of rx/tx_entries 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" On Wed, 2021-03-24 at 14:48 +0530, Jerin Jacob wrote: > On Mon, Mar 22, 2021 at 10:38 PM Igor Russkikh > wrote: > > > > > > > > On 3/5/2021 2:13 PM, Balazs Nemeth wrote: > > > External Email > > > > > > ----------------------------------------------------------------- > > > ----- > > > This patch set optimizes qede_{rx,tx}_entry and introduces > > > rte_pktmbuf_free_bulk in qede_process_tx_compl. The overall > > > performance > > > improvement depends on the use-case; in a physical-virtual- > > > physical test > > > on a ThunderX2 99xx system with two SMT threads used in ovs, > > > and two cores used in a vm, an improvement of around 2.55% is > > > observed > > > due to this patch set. > > > > > > Balazs Nemeth (8): > > >   net/qede: remove flags from qede_tx_entry and simplify to > > > rte_mbuf > > >   net/qede: avoid repeatedly calling ecore_chain_get_cons_idx > > >   net/qede: assume txq->sw_tx_ring[idx] is never null in > > >     qede_free_tx_pkt > > >   net/qede: inline qede_free_tx_pkt to prepare for > > > rte_pktmbuf_free_bulk > > >   net/qede: use rte_pktmbuf_free_bulk instead of rte_pktmbuf_free > > >   net/qede: prefetch txq->hw_cons_ptr > > >   net/qede: prefetch next packet to free > > >   net/qede: remove page_offset from struct qede_rx_entry and > > > simplify > > > > > >  drivers/net/qede/qede_rxtx.c | 148 +++++++++++++++++++---------- > > > ------ > > >  drivers/net/qede/qede_rxtx.h |  21 +---- > > >  2 files changed, 81 insertions(+), 88 deletions(-) > > > > Series reviewed, for the series > > > > Acked-by: Igor Russkikh > > > > One checkpatch warn I see in patchwork output, probably worth > > fixing: > > > > ERROR:POINTER_LOCATION: "(foo**)" should be "(foo **)" > > #120: FILE: drivers/net/qede/qede_rxtx.c:56: > > +       ret = rte_mempool_get_bulk(rxq->mb_pool, (void**)&rxq- > > >sw_rx_ring[idx], count); > > > Hi @Balazs Nemeth > > Please fix the following checkpatc.shh and check-git-log.sh issues > and > add Igor reviewed by in next version. > I will merge the next version with the fixes. Updaed  this series > status in the patchwork as "Changes requested" > Ok I will provide a new version next week. Thanks for the feedback! > > Wrong headline format: >         net/qede: remove flags from qede_tx_entry and simplify to > rte_mbuf >         net/qede: avoid repeatedly calling ecore_chain_get_cons_idx >         net/qede: assume txq->sw_tx_ring[idx] is never null in > qede_free_tx_pkt >         net/qede: inline qede_free_tx_pkt to prepare for > rte_pktmbuf_free_bulk >         net/qede: use rte_pktmbuf_free_bulk instead of > rte_pktmbuf_free >         net/qede: prefetch txq->hw_cons_ptr >         net/qede: remove page_offset from struct qede_rx_entry and > simplify > Headline too long: >         net/qede: remove flags from qede_tx_entry and simplify to > rte_mbuf >         net/qede: assume txq->sw_tx_ring[idx] is never null in > qede_free_tx_pkt >         net/qede: inline qede_free_tx_pkt to prepare for > rte_pktmbuf_free_bulk >         net/qede: use rte_pktmbuf_free_bulk instead of > rte_pktmbuf_free >         net/qede: remove page_offset from struct qede_rx_entry and > simplify > > Invalid patch(es) found - checked 8 patches > check-git-log failed > > > > ### net/qede: remove flags from qede_tx_entry and simplify to > rte_mbuf > > WARNING:LONG_LINE: line length of 89 exceeds 80 columns > #37: FILE: drivers/net/qede/qede_rxtx.c:429: > +                                            (sizeof(txq->sw_tx_ring) > * txq->nb_tx_desc), > > total: 0 errors, 1 warnings, 0 checks, 87 lines checked > > ### net/qede: avoid repeatedly calling ecore_chain_get_cons_idx > > WARNING:BRACES: braces {} are not necessary for single statement > blocks > #82: FILE: drivers/net/qede/qede_rxtx.c:934: > +       while (remaining) { > +               remaining -= qede_free_tx_pkt(txq); > +       } > > total: 0 errors, 1 warnings, 0 checks, 67 lines checked > > ### net/qede: use rte_pktmbuf_free_bulk instead of rte_pktmbuf_free > > WARNING:LONG_LINE: line length of 89 exceeds 80 columns > #48: FILE: drivers/net/qede/qede_rxtx.c:930: > +               rte_pktmbuf_free_bulk(&txq->sw_tx_ring[first_idx], > mask - first_idx + 1); > > WARNING:LONG_LINE: line length of 84 exceeds 80 columns > #51: FILE: drivers/net/qede/qede_rxtx.c:933: > +               rte_pktmbuf_free_bulk(&txq->sw_tx_ring[first_idx], > idx > - first_idx); > > total: 0 errors, 2 warnings, 0 checks, 32 lines checked > > ### net/qede: prefetch next packet to free > > WARNING:REPEATED_WORD: Possible repeated word: 'next' > #6: > While handling the current mbuf, pull the next next mbuf into the > cache. > > WARNING:BLOCK_COMMENT_STYLE: Block comments use * on subsequent lines > #21: FILE: drivers/net/qede/qede_rxtx.c:919: > +               /* Prefetch the next mbuf. Note that at least the > last 4 mbufs > +                  that are prefetched will not be used in the > current call. */ > > WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a > separate line > #21: FILE: drivers/net/qede/qede_rxtx.c:919: > +                  that are prefetched will not be used in the > current call. */ > > total: 0 errors, 3 warnings, 0 checks, 11 lines checked > > ### net/qede: remove page_offset from struct qede_rx_entry and > simplify > > WARNING:LONG_LINE: line length of 87 exceeds 80 columns > #49: FILE: drivers/net/qede/qede_rxtx.c:56: > +       ret = rte_mempool_get_bulk(rxq->mb_pool, > (void**)&rxq->sw_rx_ring[idx], count); > > ERROR:POINTER_LOCATION: "(foo**)" should be "(foo **)" > #49: FILE: drivers/net/qede/qede_rxtx.c:56: > +       ret = rte_mempool_get_bulk(rxq->mb_pool, > (void**)&rxq->sw_rx_ring[idx], count); > > total: 1 errors, 1 warnings, 0 checks, 174 lines checked > > > > > > > Thanks > >   Igor > Regards, Balazs