Acked-by: Jeff Guo <jia....@intel.com> > -----Original Message----- > From: Guo, Jia > Sent: Friday, January 15, 2021 4:31 PM > To: 'Zhang,Alvin' <alvinx.zh...@intel.com>; Liang, Cunming > <cunming.li...@intel.com> > Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zh...@intel.com>; > sta...@dpdk.org > Subject: RE: [dpdk-dev] [PATCH] test: fix buffer overflow > > Hi, Alvin > > > -----Original Message----- > > From: dev <dev-boun...@dpdk.org> On Behalf Of Zhang,Alvin > > Sent: Wednesday, November 25, 2020 5:46 PM > > To: Liang, Cunming <cunming.li...@intel.com> > > Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zh...@intel.com>; > > sta...@dpdk.org > > Subject: [dpdk-dev] [PATCH] test: fix buffer overflow > > > > From: Alvin Zhang <alvinx.zh...@intel.com> > > > > The Tx buffer may overflow when there is more than one port. > > > > Signed-off-by: Alvin Zhang <alvinx.zh...@intel.com> > > > > Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx") > > Cc: sta...@dpdk.org > > --- > > app/test/test_pmd_perf.c | 18 ++++++++---------- > > 1 file changed, 8 insertions(+), 10 deletions(-) > > > > diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index > > 4db816a..3a248d5 100644 > > --- a/app/test/test_pmd_perf.c > > +++ b/app/test/test_pmd_perf.c > > @@ -606,10 +606,10 @@ enum { > > static int > > exec_burst(uint32_t flags, int lcore) { > > - unsigned i, portid, nb_tx = 0; > > + unsigned int portid, nb_tx = 0; > > struct lcore_conf *conf; > > uint32_t pkt_per_port; > > - int num, idx = 0; > > + int num, i, idx = 0; > > int diff_tsc; > > > > conf = &lcore_conf[lcore]; > > @@ -628,16 +628,14 @@ enum { > > rte_atomic64_set(&start, 1); > > > > /* start xmit */ > > + i = 0; > > while (num) { > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > - for (i = 0; i < conf->nb_ports; i++) { > > - portid = conf->portlist[i]; > > - nb_tx = rte_eth_tx_burst(portid, 0, > > - &tx_burst[idx], nb_tx); > > - idx += nb_tx; > > - num -= nb_tx; > > - } > > - > > + portid = conf->portlist[i]; > > + nb_tx = rte_eth_tx_burst(portid, 0, &tx_burst[idx], nb_tx); > > + idx += nb_tx; > > + num -= nb_tx; > > + i = (i >= conf->nb_ports - 1) ? 0 : (i + 1); > > If conf->nb_ports = 1, after the above assign, the i should be 1 and is that > your expected?
Please ignore above comment, this code should be works. > > > } > > > > sleep(5); > > -- > > 1.8.3.1