On Wed, 2021-03-24 at 14:48 +0530, Jerin Jacob wrote: > On Mon, Mar 22, 2021 at 10:38 PM Igor Russkikh > <irussk...@marvell.com> 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 <irussk...@marvell.com> > > > > 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