* [dpdk-stable] [PATCH] test: avoid hang if queues are full and Tx fails @ 2021-07-20 12:47 Rakesh Kudurumalla 2021-07-20 16:50 ` [dpdk-stable] [PATCH v2] " Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-07-20 12:47 UTC (permalink / raw) To: rkudurumalla Cc: stable, sa_ip-toolkits-Jenkins, Nithin Kumar Dabilpuram, Jerin Jacob Kollanukkaran Current pmd_perf_autotest() in continuous mode tries to enqueue MAX_TRAFFIC_BURST completely before starting the test. Some drivers cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desc count can fit it. This patch changes behaviour to stop enqueuing after few retries. Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx") Cc: stable@dpdk.org Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com> Reviewed-on: https://sj1git1.cavium.com/c/IP/SW/dataplane/dpdk/+/55760 Tested-by: sa_ip-toolkits-Jenkins <sa_ip-toolkits-jenkins@marvell.com> Reviewed-by: Nithin Kumar Dabilpuram <ndabilpuram@marvell.com> Reviewed-by: Jerin Jacob Kollanukkaran <jerinj@marvell.com> --- app/test/test_pmd_perf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index 3a248d512c..0a95b408e8 100644 --- a/app/test/test_pmd_perf.c +++ b/app/test/test_pmd_perf.c @@ -456,6 +456,7 @@ main_loop(__rte_unused void *args) #define PACKET_SIZE 64 #define FRAME_GAP 12 #define MAC_PREAMBLE 8 +#define MAX_RETRY_COUNT 5 struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; unsigned lcore_id; unsigned i, portid, nb_rx = 0, nb_tx = 0; @@ -463,6 +464,8 @@ main_loop(__rte_unused void *args) int pkt_per_port; uint64_t diff_tsc; uint64_t packets_per_second, total_packets; + int retry_cnt = 0; + int free_pkt = 0; lcore_id = rte_lcore_id(); conf = &lcore_conf[lcore_id]; @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) nb_tx = RTE_MIN(MAX_PKT_BURST, num); nb_tx = rte_eth_tx_burst(portid, 0, &tx_burst[idx], nb_tx); + if (nb_tx == 0) + retry_cnt++; num -= nb_tx; idx += nb_tx; + if (retry_cnt == MAX_RETRY_COUNT) { + retry_cnt = 0; + break; + } } } + for (free_pkt = idx; free_pkt < (MAX_TRAFFIC_BURST*conf->nb_ports) + ; free_pkt++) + rte_pktmbuf_free(tx_burst[free_pkt]); printf("Total packets inject to prime ports = %u\n", idx); packets_per_second = (link_mbps * 1000 * 1000) / -- 2.25.1 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-07-20 12:47 [dpdk-stable] [PATCH] test: avoid hang if queues are full and Tx fails Rakesh Kudurumalla @ 2021-07-20 16:50 ` Rakesh Kudurumalla 2021-10-19 10:19 ` Rakesh Kudurumalla 2021-11-12 11:32 ` Thomas Monjalon 0 siblings, 2 replies; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-07-20 16:50 UTC (permalink / raw) Cc: dev, Rakesh Kudurumalla, stable Current pmd_perf_autotest() in continuous mode tries to enqueue MAX_TRAFFIC_BURST completely before starting the test. Some drivers cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desc count can fit it. This patch changes behaviour to stop enqueuing after few retries. Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx") Cc: stable@dpdk.org Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com> --- v2: - Fixed commit message errors app/test/test_pmd_perf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index 3a248d512c..0a95b408e8 100644 --- a/app/test/test_pmd_perf.c +++ b/app/test/test_pmd_perf.c @@ -456,6 +456,7 @@ main_loop(__rte_unused void *args) #define PACKET_SIZE 64 #define FRAME_GAP 12 #define MAC_PREAMBLE 8 +#define MAX_RETRY_COUNT 5 struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; unsigned lcore_id; unsigned i, portid, nb_rx = 0, nb_tx = 0; @@ -463,6 +464,8 @@ main_loop(__rte_unused void *args) int pkt_per_port; uint64_t diff_tsc; uint64_t packets_per_second, total_packets; + int retry_cnt = 0; + int free_pkt = 0; lcore_id = rte_lcore_id(); conf = &lcore_conf[lcore_id]; @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) nb_tx = RTE_MIN(MAX_PKT_BURST, num); nb_tx = rte_eth_tx_burst(portid, 0, &tx_burst[idx], nb_tx); + if (nb_tx == 0) + retry_cnt++; num -= nb_tx; idx += nb_tx; + if (retry_cnt == MAX_RETRY_COUNT) { + retry_cnt = 0; + break; + } } } + for (free_pkt = idx; free_pkt < (MAX_TRAFFIC_BURST*conf->nb_ports) + ; free_pkt++) + rte_pktmbuf_free(tx_burst[free_pkt]); printf("Total packets inject to prime ports = %u\n", idx); packets_per_second = (link_mbps * 1000 * 1000) / -- 2.25.1 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-07-20 16:50 ` [dpdk-stable] [PATCH v2] " Rakesh Kudurumalla @ 2021-10-19 10:19 ` Rakesh Kudurumalla 2021-10-29 7:18 ` Rakesh Kudurumalla 2021-11-12 11:32 ` Thomas Monjalon 1 sibling, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-10-19 10:19 UTC (permalink / raw) To: david.marchand; +Cc: dev, stable, Rakesh Kudurumalla ping > -----Original Message----- > From: Rakesh Kudurumalla <rkudurumalla@marvell.com> > Sent: Tuesday, July 20, 2021 10:21 PM > Cc: dev@dpdk.org; Rakesh Kudurumalla <rkudurumalla@marvell.com>; > stable@dpdk.org > Subject: [PATCH v2] test: avoid hang if queues are full and Tx fails > > Current pmd_perf_autotest() in continuous mode tries to enqueue > MAX_TRAFFIC_BURST completely before starting the test. Some drivers > cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desc count > can fit it. > This patch changes behaviour to stop enqueuing after few retries. > > Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx") > Cc: stable@dpdk.org > > Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com> > --- > v2: > - Fixed commit message errors > > app/test/test_pmd_perf.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index > 3a248d512c..0a95b408e8 100644 > --- a/app/test/test_pmd_perf.c > +++ b/app/test/test_pmd_perf.c > @@ -456,6 +456,7 @@ main_loop(__rte_unused void *args) #define > PACKET_SIZE 64 #define FRAME_GAP 12 #define MAC_PREAMBLE 8 > +#define MAX_RETRY_COUNT 5 > struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; > unsigned lcore_id; > unsigned i, portid, nb_rx = 0, nb_tx = 0; @@ -463,6 +464,8 @@ > main_loop(__rte_unused void *args) > int pkt_per_port; > uint64_t diff_tsc; > uint64_t packets_per_second, total_packets; > + int retry_cnt = 0; > + int free_pkt = 0; > > lcore_id = rte_lcore_id(); > conf = &lcore_conf[lcore_id]; > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > nb_tx = rte_eth_tx_burst(portid, 0, > &tx_burst[idx], nb_tx); > + if (nb_tx == 0) > + retry_cnt++; > num -= nb_tx; > idx += nb_tx; > + if (retry_cnt == MAX_RETRY_COUNT) { > + retry_cnt = 0; > + break; > + } > } > } > + for (free_pkt = idx; free_pkt < (MAX_TRAFFIC_BURST*conf- > >nb_ports) > + ; free_pkt++) > + rte_pktmbuf_free(tx_burst[free_pkt]); > printf("Total packets inject to prime ports = %u\n", idx); > > packets_per_second = (link_mbps * 1000 * 1000) / > -- > 2.25.1 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-10-19 10:19 ` Rakesh Kudurumalla @ 2021-10-29 7:18 ` Rakesh Kudurumalla 0 siblings, 0 replies; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-10-29 7:18 UTC (permalink / raw) To: david.marchand, thomas, ferruh.yigit, Jerin Jacob Kollanukkaran, Nithin Kumar Dabilpuram Cc: dev, stable ping > -----Original Message----- > From: Rakesh Kudurumalla > Sent: Tuesday, October 19, 2021 3:50 PM > To: david.marchand@redhat.com > Cc: dev@dpdk.org; stable@dpdk.org; Rakesh Kudurumalla > <rkudurumalla@marvell.com> > Subject: RE: [PATCH v2] test: avoid hang if queues are full and Tx fails > > ping > > > -----Original Message----- > > From: Rakesh Kudurumalla <rkudurumalla@marvell.com> > > Sent: Tuesday, July 20, 2021 10:21 PM > > Cc: dev@dpdk.org; Rakesh Kudurumalla <rkudurumalla@marvell.com>; > > stable@dpdk.org > > Subject: [PATCH v2] test: avoid hang if queues are full and Tx fails > > > > Current pmd_perf_autotest() in continuous mode tries to enqueue > > MAX_TRAFFIC_BURST completely before starting the test. Some drivers > > cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desc > count > > can fit it. > > This patch changes behaviour to stop enqueuing after few retries. > > > > Fixes: 002ade70e933 ("app/test: measure cycles per packet in Rx/Tx") > > Cc: stable@dpdk.org > > > > Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com> > > --- > > v2: > > - Fixed commit message errors > > > > app/test/test_pmd_perf.c | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index > > 3a248d512c..0a95b408e8 100644 > > --- a/app/test/test_pmd_perf.c > > +++ b/app/test/test_pmd_perf.c > > @@ -456,6 +456,7 @@ main_loop(__rte_unused void *args) #define > > PACKET_SIZE 64 #define FRAME_GAP 12 #define MAC_PREAMBLE 8 > > +#define MAX_RETRY_COUNT 5 > > struct rte_mbuf *pkts_burst[MAX_PKT_BURST]; > > unsigned lcore_id; > > unsigned i, portid, nb_rx = 0, nb_tx = 0; @@ -463,6 +464,8 @@ > > main_loop(__rte_unused void *args) > > int pkt_per_port; > > uint64_t diff_tsc; > > uint64_t packets_per_second, total_packets; > > + int retry_cnt = 0; > > + int free_pkt = 0; > > > > lcore_id = rte_lcore_id(); > > conf = &lcore_conf[lcore_id]; > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > nb_tx = rte_eth_tx_burst(portid, 0, > > &tx_burst[idx], nb_tx); > > + if (nb_tx == 0) > > + retry_cnt++; > > num -= nb_tx; > > idx += nb_tx; > > + if (retry_cnt == MAX_RETRY_COUNT) { > > + retry_cnt = 0; > > + break; > > + } > > } > > } > > + for (free_pkt = idx; free_pkt < (MAX_TRAFFIC_BURST*conf- > > >nb_ports) > > + ; free_pkt++) > > + rte_pktmbuf_free(tx_burst[free_pkt]); > > printf("Total packets inject to prime ports = %u\n", idx); > > > > packets_per_second = (link_mbps * 1000 * 1000) / > > -- > > 2.25.1 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-07-20 16:50 ` [dpdk-stable] [PATCH v2] " Rakesh Kudurumalla 2021-10-19 10:19 ` Rakesh Kudurumalla @ 2021-11-12 11:32 ` Thomas Monjalon 2021-11-22 7:59 ` [EXT] " Rakesh Kudurumalla 1 sibling, 1 reply; 17+ messages in thread From: Thomas Monjalon @ 2021-11-12 11:32 UTC (permalink / raw) To: Rakesh Kudurumalla Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde, jerinj 20/07/2021 18:50, Rakesh Kudurumalla: > Current pmd_perf_autotest() in continuous mode tries > to enqueue MAX_TRAFFIC_BURST completely before starting > the test. Some drivers cannot accept complete > MAX_TRAFFIC_BURST even though rx+tx desc count can fit it. Which driver is failing to do so? Why it cannot enqueue 32 packets? > This patch changes behaviour to stop enqueuing after few > retries. If there is a real limitation, there will be issues in more places than this test program. I feel it should be addressed either in the driver or at ethdev level. [...] > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > nb_tx = rte_eth_tx_burst(portid, 0, > &tx_burst[idx], nb_tx); > + if (nb_tx == 0) > + retry_cnt++; > num -= nb_tx; > idx += nb_tx; > + if (retry_cnt == MAX_RETRY_COUNT) { > + retry_cnt = 0; > + break; > + } ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-11-12 11:32 ` Thomas Monjalon @ 2021-11-22 7:59 ` Rakesh Kudurumalla 2021-11-22 8:58 ` Thomas Monjalon 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-11-22 7:59 UTC (permalink / raw) To: Thomas Monjalon Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde, Jerin Jacob Kollanukkaran Octeontx2 driver is failing to enqueue because hardware buffers are full before test. pmd_perf_autotest() in continuous mode tries to enqueue MAX_TRAFFIC_BURST (2048) before starting the test. > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Friday, November 12, 2021 5:02 PM > To: Rakesh Kudurumalla <rkudurumalla@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com; Jerin Jacob Kollanukkaran > <jerinj@marvell.com> > Subject: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full > and Tx fails > > External Email > > ---------------------------------------------------------------------- > 20/07/2021 18:50, Rakesh Kudurumalla: > > Current pmd_perf_autotest() in continuous mode tries to enqueue > > MAX_TRAFFIC_BURST completely before starting the test. Some drivers > > cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desc > count > > can fit it. > > Which driver is failing to do so? > Why it cannot enqueue 32 packets? > > > This patch changes behaviour to stop enqueuing after few retries. > > If there is a real limitation, there will be issues in more places than this test > program. > I feel it should be addressed either in the driver or at ethdev level. > > [...] > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > nb_tx = rte_eth_tx_burst(portid, 0, > > &tx_burst[idx], nb_tx); > > + if (nb_tx == 0) > > + retry_cnt++; > > num -= nb_tx; > > idx += nb_tx; > > + if (retry_cnt == MAX_RETRY_COUNT) { > > + retry_cnt = 0; > > + break; > > + } > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-11-22 7:59 ` [EXT] " Rakesh Kudurumalla @ 2021-11-22 8:58 ` Thomas Monjalon 2021-11-29 8:52 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Thomas Monjalon @ 2021-11-22 8:58 UTC (permalink / raw) To: Rakesh Kudurumalla Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde, Jerin Jacob Kollanukkaran 22/11/2021 08:59, Rakesh Kudurumalla: > From: Thomas Monjalon <thomas@monjalon.net> > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > Current pmd_perf_autotest() in continuous mode tries to enqueue > > > MAX_TRAFFIC_BURST completely before starting the test. Some drivers > > > cannot accept complete MAX_TRAFFIC_BURST even though rx+tx desc > > count > > > can fit it. > > > > Which driver is failing to do so? > > Why it cannot enqueue 32 packets? > > Octeontx2 driver is failing to enqueue because hardware buffers are full before test. Why hardware buffers are full? > pmd_perf_autotest() in continuous mode tries to enqueue MAX_TRAFFIC_BURST (2048) > before starting the test. > > > > This patch changes behaviour to stop enqueuing after few retries. > > > > If there is a real limitation, there will be issues in more places than this test > > program. > > I feel it should be addressed either in the driver or at ethdev level. > > > > [...] > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > &tx_burst[idx], nb_tx); > > > + if (nb_tx == 0) > > > + retry_cnt++; > > > num -= nb_tx; > > > idx += nb_tx; > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > + retry_cnt = 0; > > > + break; > > > + } ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-11-22 8:58 ` Thomas Monjalon @ 2021-11-29 8:52 ` Rakesh Kudurumalla 2021-11-29 9:13 ` Thomas Monjalon 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-11-29 8:52 UTC (permalink / raw) To: Thomas Monjalon Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde, Jerin Jacob Kollanukkaran > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Monday, November 22, 2021 2:28 PM > To: Rakesh Kudurumalla <rkudurumalla@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com; Jerin Jacob Kollanukkaran > <jerinj@marvell.com> > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > 22/11/2021 08:59, Rakesh Kudurumalla: > > From: Thomas Monjalon <thomas@monjalon.net> > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > Current pmd_perf_autotest() in continuous mode tries to enqueue > > > > MAX_TRAFFIC_BURST completely before starting the test. Some > > > > drivers cannot accept complete MAX_TRAFFIC_BURST even though > rx+tx > > > > desc > > > count > > > > can fit it. > > > > > > Which driver is failing to do so? > > > Why it cannot enqueue 32 packets? > > > > Octeontx2 driver is failing to enqueue because hardware buffers are full > before test. > > Why hardware buffers are full? Hardware buffers are full because number of number of descriptors in continuous mode Is less than MAX_TRAFFIC_BURST, so if enque fails , there is no way hardware can drop the Packets . pmd_per_autotest application evaluates performance after enqueueing packets Initially. > > > pmd_perf_autotest() in continuous mode tries to enqueue > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > This patch changes behaviour to stop enqueuing after few retries. > > > > > > If there is a real limitation, there will be issues in more places > > > than this test program. > > > I feel it should be addressed either in the driver or at ethdev level. > > > > > > [...] > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > &tx_burst[idx], nb_tx); > > > > + if (nb_tx == 0) > > > > + retry_cnt++; > > > > num -= nb_tx; > > > > idx += nb_tx; > > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > > + retry_cnt = 0; > > > > + break; > > > > + } > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-11-29 8:52 ` Rakesh Kudurumalla @ 2021-11-29 9:13 ` Thomas Monjalon 2021-12-13 6:40 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Thomas Monjalon @ 2021-11-29 9:13 UTC (permalink / raw) To: Rakesh Kudurumalla, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde 29/11/2021 09:52, Rakesh Kudurumalla: > From: Thomas Monjalon <thomas@monjalon.net> > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > Current pmd_perf_autotest() in continuous mode tries to enqueue > > > > > MAX_TRAFFIC_BURST completely before starting the test. Some > > > > > drivers cannot accept complete MAX_TRAFFIC_BURST even though > > rx+tx > > > > > desc > > > > count > > > > > can fit it. > > > > > > > > Which driver is failing to do so? > > > > Why it cannot enqueue 32 packets? > > > > > > Octeontx2 driver is failing to enqueue because hardware buffers are full > > before test. Aren't you stopping the support of octeontx2? Why do you care now? > > > > Why hardware buffers are full? > Hardware buffers are full because number of number of descriptors in continuous mode > Is less than MAX_TRAFFIC_BURST, so if enque fails , there is no way hardware can drop the > Packets . pmd_per_autotest application evaluates performance after enqueueing packets > Initially. > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > This patch changes behaviour to stop enqueuing after few retries. > > > > > > > > If there is a real limitation, there will be issues in more places > > > > than this test program. > > > > I feel it should be addressed either in the driver or at ethdev level. > > > > > > > > [...] > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > &tx_burst[idx], nb_tx); > > > > > + if (nb_tx == 0) > > > > > + retry_cnt++; > > > > > num -= nb_tx; > > > > > idx += nb_tx; > > > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > > > + retry_cnt = 0; > > > > > + break; > > > > > + } ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-11-29 9:13 ` Thomas Monjalon @ 2021-12-13 6:40 ` Rakesh Kudurumalla 2022-01-10 9:04 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2021-12-13 6:40 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Monday, November 29, 2021 2:44 PM > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin Jacob > Kollanukkaran <jerinj@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > 29/11/2021 09:52, Rakesh Kudurumalla: > > From: Thomas Monjalon <thomas@monjalon.net> > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > Current pmd_perf_autotest() in continuous mode tries to > > > > > > enqueue MAX_TRAFFIC_BURST completely before starting the test. > > > > > > Some drivers cannot accept complete MAX_TRAFFIC_BURST even > > > > > > though > > > rx+tx > > > > > > desc > > > > > count > > > > > > can fit it. > > > > > > > > > > Which driver is failing to do so? > > > > > Why it cannot enqueue 32 packets? > > > > > > > > Octeontx2 driver is failing to enqueue because hardware buffers > > > > are full > > > before test. > > Aren't you stopping the support of octeontx2? > Why do you care now? > yes we are not supporting octeontx2,but this issue is observed in cnxk driver ,current patch fixes the same > > > > > > Why hardware buffers are full? > > Hardware buffers are full because number of number of descriptors in > > continuous mode Is less than MAX_TRAFFIC_BURST, so if enque fails , > > there is no way hardware can drop the Packets . pmd_per_autotest > > application evaluates performance after enqueueing packets Initially. > > > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > > > This patch changes behaviour to stop enqueuing after few retries. > > > > > > > > > > If there is a real limitation, there will be issues in more > > > > > places than this test program. > > > > > I feel it should be addressed either in the driver or at ethdev level. > > > > > > > > > > [...] > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > &tx_burst[idx], > nb_tx); > > > > > > + if (nb_tx == 0) > > > > > > + retry_cnt++; > > > > > > num -= nb_tx; > > > > > > idx += nb_tx; > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > > > > + retry_cnt = 0; > > > > > > + break; > > > > > > + } > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2021-12-13 6:40 ` Rakesh Kudurumalla @ 2022-01-10 9:04 ` Rakesh Kudurumalla 2022-02-01 6:30 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2022-01-10 9:04 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde ping > -----Original Message----- > From: Rakesh Kudurumalla > Sent: Monday, December 13, 2021 12:10 PM > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > <jerinj@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > > > > -----Original Message----- > > From: Thomas Monjalon <thomas@monjalon.net> > > Sent: Monday, November 29, 2021 2:44 PM > > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin Jacob > > Kollanukkaran <jerinj@marvell.com> > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > ajit.khaparde@broadcom.com > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > queues are full and Tx fails > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > Current pmd_perf_autotest() in continuous mode tries to > > > > > > > enqueue MAX_TRAFFIC_BURST completely before starting the test. > > > > > > > Some drivers cannot accept complete MAX_TRAFFIC_BURST even > > > > > > > though > > > > rx+tx > > > > > > > desc > > > > > > count > > > > > > > can fit it. > > > > > > > > > > > > Which driver is failing to do so? > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > Octeontx2 driver is failing to enqueue because hardware buffers > > > > > are full > > > > before test. > > > > Aren't you stopping the support of octeontx2? > > Why do you care now? > > yes we are not supporting octeontx2,but this issue is observed in > > cnxk driver ,current patch fixes the same > > > > > > > > Why hardware buffers are full? > > > Hardware buffers are full because number of number of descriptors in > > > continuous mode Is less than MAX_TRAFFIC_BURST, so if enque fails , > > > there is no way hardware can drop the Packets . pmd_per_autotest > > > application evaluates performance after enqueueing packets Initially. > > > > > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > > > > > This patch changes behaviour to stop enqueuing after few retries. > > > > > > > > > > > > If there is a real limitation, there will be issues in more > > > > > > places than this test program. > > > > > > I feel it should be addressed either in the driver or at ethdev level. > > > > > > > > > > > > [...] > > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > > &tx_burst[idx], > > nb_tx); > > > > > > > + if (nb_tx == 0) > > > > > > > + retry_cnt++; > > > > > > > num -= nb_tx; > > > > > > > idx += nb_tx; > > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > > > > > + retry_cnt = 0; > > > > > > > + break; > > > > > > > + } > > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2022-01-10 9:04 ` Rakesh Kudurumalla @ 2022-02-01 6:30 ` Rakesh Kudurumalla 2022-02-01 7:44 ` Thomas Monjalon 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2022-02-01 6:30 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde ping > -----Original Message----- > From: Rakesh Kudurumalla > Sent: Monday, January 10, 2022 2:35 PM > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > <jerinj@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > ping > > > -----Original Message----- > > From: Rakesh Kudurumalla > > Sent: Monday, December 13, 2021 12:10 PM > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > > <jerinj@marvell.com> > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > ajit.khaparde@broadcom.com > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > queues are full and Tx fails > > > > > > > > > -----Original Message----- > > > From: Thomas Monjalon <thomas@monjalon.net> > > > Sent: Monday, November 29, 2021 2:44 PM > > > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin Jacob > > > Kollanukkaran <jerinj@marvell.com> > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > ajit.khaparde@broadcom.com > > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > > queues are full and Tx fails > > > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > > Current pmd_perf_autotest() in continuous mode tries to > > > > > > > > enqueue MAX_TRAFFIC_BURST completely before starting the > test. > > > > > > > > Some drivers cannot accept complete MAX_TRAFFIC_BURST even > > > > > > > > though > > > > > rx+tx > > > > > > > > desc > > > > > > > count > > > > > > > > can fit it. > > > > > > > > > > > > > > Which driver is failing to do so? > > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > > > Octeontx2 driver is failing to enqueue because hardware > > > > > > buffers are full > > > > > before test. > > > > > > Aren't you stopping the support of octeontx2? > > > Why do you care now? > > > yes we are not supporting octeontx2,but this issue is observed in > > > cnxk driver ,current patch fixes the same > > > > > > > > > > Why hardware buffers are full? > > > > Hardware buffers are full because number of number of descriptors > > > > in continuous mode Is less than MAX_TRAFFIC_BURST, so if enque > > > > fails , there is no way hardware can drop the Packets . > > > > pmd_per_autotest application evaluates performance after enqueueing > packets Initially. > > > > > > > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > > > > > > > This patch changes behaviour to stop enqueuing after few > retries. > > > > > > > > > > > > > > If there is a real limitation, there will be issues in more > > > > > > > places than this test program. > > > > > > > I feel it should be addressed either in the driver or at ethdev level. > > > > > > > > > > > > > > [...] > > > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > > > &tx_burst[idx], > > > nb_tx); > > > > > > > > + if (nb_tx == 0) > > > > > > > > + retry_cnt++; > > > > > > > > num -= nb_tx; > > > > > > > > idx += nb_tx; > > > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > > > > > > + retry_cnt = 0; > > > > > > > > + break; > > > > > > > > + } > > > > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2022-02-01 6:30 ` Rakesh Kudurumalla @ 2022-02-01 7:44 ` Thomas Monjalon 2022-02-14 4:56 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Thomas Monjalon @ 2022-02-01 7:44 UTC (permalink / raw) To: Jerin Jacob Kollanukkaran, Rakesh Kudurumalla Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde octeontx2 driver is removed Can we close this patch? 01/02/2022 07:30, Rakesh Kudurumalla: > ping > > > -----Original Message----- > > From: Rakesh Kudurumalla > > Sent: Monday, January 10, 2022 2:35 PM > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > > <jerinj@marvell.com> > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > ajit.khaparde@broadcom.com > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > > full and Tx fails > > > > ping > > > > > -----Original Message----- > > > From: Rakesh Kudurumalla > > > Sent: Monday, December 13, 2021 12:10 PM > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > > > <jerinj@marvell.com> > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > ajit.khaparde@broadcom.com > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > > queues are full and Tx fails > > > > > > > > > > > > > -----Original Message----- > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > Sent: Monday, November 29, 2021 2:44 PM > > > > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin Jacob > > > > Kollanukkaran <jerinj@marvell.com> > > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > ajit.khaparde@broadcom.com > > > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > > > queues are full and Tx fails > > > > > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > > > Current pmd_perf_autotest() in continuous mode tries to > > > > > > > > > enqueue MAX_TRAFFIC_BURST completely before starting the > > test. > > > > > > > > > Some drivers cannot accept complete MAX_TRAFFIC_BURST even > > > > > > > > > though > > > > > > rx+tx > > > > > > > > > desc > > > > > > > > count > > > > > > > > > can fit it. > > > > > > > > > > > > > > > > Which driver is failing to do so? > > > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > > > > > Octeontx2 driver is failing to enqueue because hardware > > > > > > > buffers are full > > > > > > before test. > > > > > > > > Aren't you stopping the support of octeontx2? > > > > Why do you care now? > > > > yes we are not supporting octeontx2,but this issue is observed in > > > > cnxk driver ,current patch fixes the same > > > > > > > > > > > > Why hardware buffers are full? > > > > > Hardware buffers are full because number of number of descriptors > > > > > in continuous mode Is less than MAX_TRAFFIC_BURST, so if enque > > > > > fails , there is no way hardware can drop the Packets . > > > > > pmd_per_autotest application evaluates performance after enqueueing > > packets Initially. > > > > > > > > > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > > > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > > > > > > > > > This patch changes behaviour to stop enqueuing after few > > retries. > > > > > > > > > > > > > > > > If there is a real limitation, there will be issues in more > > > > > > > > places than this test program. > > > > > > > > I feel it should be addressed either in the driver or at ethdev level. > > > > > > > > > > > > > > > > [...] > > > > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void *args) > > > > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, num); > > > > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > > > > &tx_burst[idx], > > > > nb_tx); > > > > > > > > > + if (nb_tx == 0) > > > > > > > > > + retry_cnt++; > > > > > > > > > num -= nb_tx; > > > > > > > > > idx += nb_tx; > > > > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) { > > > > > > > > > + retry_cnt = 0; > > > > > > > > > + break; > > > > > > > > > + } > > > > > > > > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2022-02-01 7:44 ` Thomas Monjalon @ 2022-02-14 4:56 ` Rakesh Kudurumalla 2022-05-09 10:01 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2022-02-14 4:56 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Tuesday, February 1, 2022 1:15 PM > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Rakesh Kudurumalla > <rkudurumalla@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > octeontx2 driver is removed > Can we close this patch? Same behavior is observed with cnxk driver, so we need this patch > > > 01/02/2022 07:30, Rakesh Kudurumalla: > > ping > > > > > -----Original Message----- > > > From: Rakesh Kudurumalla > > > Sent: Monday, January 10, 2022 2:35 PM > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob > Kollanukkaran > > > <jerinj@marvell.com> > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > ajit.khaparde@broadcom.com > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > > queues are full and Tx fails > > > > > > ping > > > > > > > -----Original Message----- > > > > From: Rakesh Kudurumalla > > > > Sent: Monday, December 13, 2021 12:10 PM > > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob > > > > Kollanukkaran <jerinj@marvell.com> > > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > ajit.khaparde@broadcom.com > > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang > > > > if queues are full and Tx fails > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > Sent: Monday, November 29, 2021 2:44 PM > > > > > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin Jacob > > > > > Kollanukkaran <jerinj@marvell.com> > > > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > > ajit.khaparde@broadcom.com > > > > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang > > > > > if queues are full and Tx fails > > > > > > > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > > > > Current pmd_perf_autotest() in continuous mode tries > > > > > > > > > > to enqueue MAX_TRAFFIC_BURST completely before > > > > > > > > > > starting the > > > test. > > > > > > > > > > Some drivers cannot accept complete MAX_TRAFFIC_BURST > > > > > > > > > > even though > > > > > > > rx+tx > > > > > > > > > > desc > > > > > > > > > count > > > > > > > > > > can fit it. > > > > > > > > > > > > > > > > > > Which driver is failing to do so? > > > > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > > > > > > > Octeontx2 driver is failing to enqueue because hardware > > > > > > > > buffers are full > > > > > > > before test. > > > > > > > > > > Aren't you stopping the support of octeontx2? > > > > > Why do you care now? > > > > > yes we are not supporting octeontx2,but this issue is observed > > > > > in cnxk driver ,current patch fixes the same > > > > > > > > > > > > > > Why hardware buffers are full? > > > > > > Hardware buffers are full because number of number of > > > > > > descriptors in continuous mode Is less than MAX_TRAFFIC_BURST, > > > > > > so if enque fails , there is no way hardware can drop the Packets . > > > > > > pmd_per_autotest application evaluates performance after > > > > > > enqueueing > > > packets Initially. > > > > > > > > > > > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > > > > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > > > > > > > > > > > This patch changes behaviour to stop enqueuing after > > > > > > > > > > few > > > retries. > > > > > > > > > > > > > > > > > > If there is a real limitation, there will be issues in > > > > > > > > > more places than this test program. > > > > > > > > > I feel it should be addressed either in the driver or at ethdev > level. > > > > > > > > > > > > > > > > > > [...] > > > > > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void > *args) > > > > > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, > num); > > > > > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > > > > > > &tx_burst[idx], > > > > > nb_tx); > > > > > > > > > > + if (nb_tx == 0) > > > > > > > > > > + retry_cnt++; > > > > > > > > > > num -= nb_tx; > > > > > > > > > > idx += nb_tx; > > > > > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) > { > > > > > > > > > > + retry_cnt = 0; > > > > > > > > > > + break; > > > > > > > > > > + } > > > > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2022-02-14 4:56 ` Rakesh Kudurumalla @ 2022-05-09 10:01 ` Rakesh Kudurumalla 2022-05-24 5:39 ` Rakesh Kudurumalla 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2022-05-09 10:01 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde Hi Thomas Monjalon, Same behavior is observed in cnxk driver as well. Can we please get this patch merged ? Regards, Rakesh > -----Original Message----- > From: Rakesh Kudurumalla > Sent: Monday, February 14, 2022 10:27 AM > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > <jerinj@marvell.com> > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > ajit.khaparde@broadcom.com > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > > > > -----Original Message----- > > From: Thomas Monjalon <thomas@monjalon.net> > > Sent: Tuesday, February 1, 2022 1:15 PM > > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Rakesh Kudurumalla > > <rkudurumalla@marvell.com> > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > ajit.khaparde@broadcom.com > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > queues are full and Tx fails > > > > octeontx2 driver is removed > > Can we close this patch? > Same behavior is observed with cnxk driver, so we need this patch > > > > > > 01/02/2022 07:30, Rakesh Kudurumalla: > > > ping > > > > > > > -----Original Message----- > > > > From: Rakesh Kudurumalla > > > > Sent: Monday, January 10, 2022 2:35 PM > > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob > > Kollanukkaran > > > > <jerinj@marvell.com> > > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > ajit.khaparde@broadcom.com > > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang > > > > if queues are full and Tx fails > > > > > > > > ping > > > > > > > > > -----Original Message----- > > > > > From: Rakesh Kudurumalla > > > > > Sent: Monday, December 13, 2021 12:10 PM > > > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob > > > > > Kollanukkaran <jerinj@marvell.com> > > > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > > ajit.khaparde@broadcom.com > > > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang > > > > > if queues are full and Tx fails > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > Sent: Monday, November 29, 2021 2:44 PM > > > > > > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin Jacob > > > > > > Kollanukkaran <jerinj@marvell.com> > > > > > > Cc: stable@dpdk.org; dev@dpdk.org; > david.marchand@redhat.com; > > > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > > > ajit.khaparde@broadcom.com > > > > > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid > > > > > > hang if queues are full and Tx fails > > > > > > > > > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > > > > > Current pmd_perf_autotest() in continuous mode tries > > > > > > > > > > > to enqueue MAX_TRAFFIC_BURST completely before > > > > > > > > > > > starting the > > > > test. > > > > > > > > > > > Some drivers cannot accept complete > > > > > > > > > > > MAX_TRAFFIC_BURST even though > > > > > > > > rx+tx > > > > > > > > > > > desc > > > > > > > > > > count > > > > > > > > > > > can fit it. > > > > > > > > > > > > > > > > > > > > Which driver is failing to do so? > > > > > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > > > > > > > > > Octeontx2 driver is failing to enqueue because hardware > > > > > > > > > buffers are full > > > > > > > > before test. > > > > > > > > > > > > Aren't you stopping the support of octeontx2? > > > > > > Why do you care now? > > > > > > yes we are not supporting octeontx2,but this issue is > > > > > > observed in cnxk driver ,current patch fixes the same > > > > > > > > > > > > > > > > Why hardware buffers are full? > > > > > > > Hardware buffers are full because number of number of > > > > > > > descriptors in continuous mode Is less than > > > > > > > MAX_TRAFFIC_BURST, so if enque fails , there is no way hardware > can drop the Packets . > > > > > > > pmd_per_autotest application evaluates performance after > > > > > > > enqueueing > > > > packets Initially. > > > > > > > > > > > > > > > > > pmd_perf_autotest() in continuous mode tries to enqueue > > > > > > > > > MAX_TRAFFIC_BURST (2048) before starting the test. > > > > > > > > > > > > > > > > > > > > This patch changes behaviour to stop enqueuing after > > > > > > > > > > > few > > > > retries. > > > > > > > > > > > > > > > > > > > > If there is a real limitation, there will be issues in > > > > > > > > > > more places than this test program. > > > > > > > > > > I feel it should be addressed either in the driver or > > > > > > > > > > at ethdev > > level. > > > > > > > > > > > > > > > > > > > > [...] > > > > > > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void > > *args) > > > > > > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, > > num); > > > > > > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > > > > > > > > &tx_burst[idx], > > > > > > nb_tx); > > > > > > > > > > > + if (nb_tx == 0) > > > > > > > > > > > + retry_cnt++; > > > > > > > > > > > num -= nb_tx; > > > > > > > > > > > idx += nb_tx; > > > > > > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) > > { > > > > > > > > > > > + retry_cnt = 0; > > > > > > > > > > > + break; > > > > > > > > > > > + } > > > > > > > > > > > > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2022-05-09 10:01 ` Rakesh Kudurumalla @ 2022-05-24 5:39 ` Rakesh Kudurumalla 2022-05-25 8:02 ` Thomas Monjalon 0 siblings, 1 reply; 17+ messages in thread From: Rakesh Kudurumalla @ 2022-05-24 5:39 UTC (permalink / raw) To: Thomas Monjalon, Jerin Jacob Kollanukkaran Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde ping > -----Original Message----- > From: Rakesh Kudurumalla > Sent: Monday, May 9, 2022 3:32 PM > To: 'Thomas Monjalon' <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > <jerinj@marvell.com> > Cc: 'stable@dpdk.org' <stable@dpdk.org>; 'dev@dpdk.org' > <dev@dpdk.org>; 'david.marchand@redhat.com' > <david.marchand@redhat.com>; 'ferruh.yigit@intel.com' > <ferruh.yigit@intel.com>; 'andrew.rybchenko@oktetlabs.ru' > <andrew.rybchenko@oktetlabs.ru>; 'ajit.khaparde@broadcom.com' > <ajit.khaparde@broadcom.com> > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are > full and Tx fails > > Hi Thomas Monjalon, > > Same behavior is observed in cnxk driver as well. > Can we please get this patch merged ? > > Regards, > Rakesh > > -----Original Message----- > > From: Rakesh Kudurumalla > > Sent: Monday, February 14, 2022 10:27 AM > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob Kollanukkaran > > <jerinj@marvell.com> > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > ajit.khaparde@broadcom.com > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > queues are full and Tx fails > > > > > > > > > -----Original Message----- > > > From: Thomas Monjalon <thomas@monjalon.net> > > > Sent: Tuesday, February 1, 2022 1:15 PM > > > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Rakesh > > > Kudurumalla <rkudurumalla@marvell.com> > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > ajit.khaparde@broadcom.com > > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if > > > queues are full and Tx fails > > > > > > octeontx2 driver is removed > > > Can we close this patch? > > Same behavior is observed with cnxk driver, so we need this patch > > > > > > > > > 01/02/2022 07:30, Rakesh Kudurumalla: > > > > ping > > > > > > > > > -----Original Message----- > > > > > From: Rakesh Kudurumalla > > > > > Sent: Monday, January 10, 2022 2:35 PM > > > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob > > > Kollanukkaran > > > > > <jerinj@marvell.com> > > > > > Cc: stable@dpdk.org; dev@dpdk.org; david.marchand@redhat.com; > > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > > ajit.khaparde@broadcom.com > > > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang > > > > > if queues are full and Tx fails > > > > > > > > > > ping > > > > > > > > > > > -----Original Message----- > > > > > > From: Rakesh Kudurumalla > > > > > > Sent: Monday, December 13, 2021 12:10 PM > > > > > > To: Thomas Monjalon <thomas@monjalon.net>; Jerin Jacob > > > > > > Kollanukkaran <jerinj@marvell.com> > > > > > > Cc: stable@dpdk.org; dev@dpdk.org; > david.marchand@redhat.com; > > > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > > > ajit.khaparde@broadcom.com > > > > > > Subject: RE: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid > > > > > > hang if queues are full and Tx fails > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > Sent: Monday, November 29, 2021 2:44 PM > > > > > > > To: Rakesh Kudurumalla <rkudurumalla@marvell.com>; Jerin > > > > > > > Jacob Kollanukkaran <jerinj@marvell.com> > > > > > > > Cc: stable@dpdk.org; dev@dpdk.org; > > david.marchand@redhat.com; > > > > > > > ferruh.yigit@intel.com; andrew.rybchenko@oktetlabs.ru; > > > > > > > ajit.khaparde@broadcom.com > > > > > > > Subject: Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid > > > > > > > hang if queues are full and Tx fails > > > > > > > > > > > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > > > > > > Current pmd_perf_autotest() in continuous mode > > > > > > > > > > > > tries to enqueue MAX_TRAFFIC_BURST completely > > > > > > > > > > > > before starting the > > > > > test. > > > > > > > > > > > > Some drivers cannot accept complete > > > > > > > > > > > > MAX_TRAFFIC_BURST even though > > > > > > > > > rx+tx > > > > > > > > > > > > desc > > > > > > > > > > > count > > > > > > > > > > > > can fit it. > > > > > > > > > > > > > > > > > > > > > > Which driver is failing to do so? > > > > > > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > > > > > > > > > > > Octeontx2 driver is failing to enqueue because > > > > > > > > > > hardware buffers are full > > > > > > > > > before test. > > > > > > > > > > > > > > Aren't you stopping the support of octeontx2? > > > > > > > Why do you care now? > > > > > > > yes we are not supporting octeontx2,but this issue is > > > > > > > observed in cnxk driver ,current patch fixes the same > > > > > > > > > > > > > > > > > > Why hardware buffers are full? > > > > > > > > Hardware buffers are full because number of number of > > > > > > > > descriptors in continuous mode Is less than > > > > > > > > MAX_TRAFFIC_BURST, so if enque fails , there is no way > > > > > > > > hardware > > can drop the Packets . > > > > > > > > pmd_per_autotest application evaluates performance after > > > > > > > > enqueueing > > > > > packets Initially. > > > > > > > > > > > > > > > > > > > pmd_perf_autotest() in continuous mode tries to > > > > > > > > > > enqueue MAX_TRAFFIC_BURST (2048) before starting the > test. > > > > > > > > > > > > > > > > > > > > > > This patch changes behaviour to stop enqueuing > > > > > > > > > > > > after few > > > > > retries. > > > > > > > > > > > > > > > > > > > > > > If there is a real limitation, there will be issues > > > > > > > > > > > in more places than this test program. > > > > > > > > > > > I feel it should be addressed either in the driver > > > > > > > > > > > or at ethdev > > > level. > > > > > > > > > > > > > > > > > > > > > > [...] > > > > > > > > > > > > @@ -480,10 +483,19 @@ main_loop(__rte_unused void > > > *args) > > > > > > > > > > > > nb_tx = RTE_MIN(MAX_PKT_BURST, > > > num); > > > > > > > > > > > > nb_tx = rte_eth_tx_burst(portid, 0, > > > > > > > > > > > > > > > &tx_burst[idx], > > > > > > > nb_tx); > > > > > > > > > > > > + if (nb_tx == 0) > > > > > > > > > > > > + retry_cnt++; > > > > > > > > > > > > num -= nb_tx; > > > > > > > > > > > > idx += nb_tx; > > > > > > > > > > > > + if (retry_cnt == MAX_RETRY_COUNT) > > > { > > > > > > > > > > > > + retry_cnt = 0; > > > > > > > > > > > > + break; > > > > > > > > > > > > + } > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [EXT] Re: [dpdk-stable] [PATCH v2] test: avoid hang if queues are full and Tx fails 2022-05-24 5:39 ` Rakesh Kudurumalla @ 2022-05-25 8:02 ` Thomas Monjalon 0 siblings, 0 replies; 17+ messages in thread From: Thomas Monjalon @ 2022-05-25 8:02 UTC (permalink / raw) To: Jerin Jacob Kollanukkaran, dev Cc: stable, dev, david.marchand, ferruh.yigit, andrew.rybchenko, ajit.khaparde, Rakesh Kudurumalla I'm pretty sure there is something wrong in the driver cnxk, but you keep insisting and nobody complained, so I accept the patch for the test application. Applied 24/05/2022 07:39, Rakesh Kudurumalla: > ping > > > From: Rakesh Kudurumalla > > Sent: Monday, May 9, 2022 3:32 PM > > > > Hi Thomas Monjalon, > > > > Same behavior is observed in cnxk driver as well. > > Can we please get this patch merged ? > > > > > From: Rakesh Kudurumalla > > > Sent: Monday, February 14, 2022 10:27 AM > > > > > > > > octeontx2 driver is removed > > > > Can we close this patch? > > > Same behavior is observed with cnxk driver, so we need this patch > > > > > > > > 01/02/2022 07:30, Rakesh Kudurumalla: > > > > > ping > > > > > > > > > > > From: Rakesh Kudurumalla > > > > > > Sent: Monday, January 10, 2022 2:35 PM > > > > > > > > > > > > ping > > > > > > > > > > > > > From: Rakesh Kudurumalla > > > > > > > Sent: Monday, December 13, 2021 12:10 PM > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > Sent: Monday, November 29, 2021 2:44 PM > > > > > > > > 29/11/2021 09:52, Rakesh Kudurumalla: > > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > > > 22/11/2021 08:59, Rakesh Kudurumalla: > > > > > > > > > > > From: Thomas Monjalon <thomas@monjalon.net> > > > > > > > > > > > > 20/07/2021 18:50, Rakesh Kudurumalla: > > > > > > > > > > > > > Current pmd_perf_autotest() in continuous mode > > > > > > > > > > > > > tries to enqueue MAX_TRAFFIC_BURST completely > > > > > > > > > > > > > before starting the > > > > > > test. > > > > > > > > > > > > > Some drivers cannot accept complete > > > > > > > > > > > > > MAX_TRAFFIC_BURST even though > > > > > > > > > > rx+tx > > > > > > > > > > > > > desc > > > > > > > > > > > > count > > > > > > > > > > > > > can fit it. > > > > > > > > > > > > > > > > > > > > > > > > Which driver is failing to do so? > > > > > > > > > > > > Why it cannot enqueue 32 packets? > > > > > > > > > > > > > > > > > > > > > > Octeontx2 driver is failing to enqueue because > > > > > > > > > > > hardware buffers are full > > > > > > > > > > before test. > > > > > > > > > > > > > > > > Aren't you stopping the support of octeontx2? > > > > > > > > Why do you care now? > > > > > > > > yes we are not supporting octeontx2,but this issue is > > > > > > > > observed in cnxk driver ,current patch fixes the same > > > > > > > > > > > > > > > > > > > > Why hardware buffers are full? > > > > > > > > > Hardware buffers are full because number of number of > > > > > > > > > descriptors in continuous mode Is less than > > > > > > > > > MAX_TRAFFIC_BURST, so if enque fails , there is no way > > > > > > > > > hardware > > > can drop the Packets . > > > > > > > > > pmd_per_autotest application evaluates performance after > > > > > > > > > enqueueing > > > > > > packets Initially. > > > > > > > > > > > > > > > > > > > > > pmd_perf_autotest() in continuous mode tries to > > > > > > > > > > > enqueue MAX_TRAFFIC_BURST (2048) before starting the > > test. > > > > > > > > > > > > > > > > > > > > > > > > This patch changes behaviour to stop enqueuing > > > > > > > > > > > > > after few > > > > > > retries. > > > > > > > > > > > > > > > > > > > > > > > > If there is a real limitation, there will be issues > > > > > > > > > > > > in more places than this test program. > > > > > > > > > > > > I feel it should be addressed either in the driver > > > > > > > > > > > > or at ethdev > > > > level. ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2022-05-25 8:02 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-20 12:47 [dpdk-stable] [PATCH] test: avoid hang if queues are full and Tx fails Rakesh Kudurumalla 2021-07-20 16:50 ` [dpdk-stable] [PATCH v2] " Rakesh Kudurumalla 2021-10-19 10:19 ` Rakesh Kudurumalla 2021-10-29 7:18 ` Rakesh Kudurumalla 2021-11-12 11:32 ` Thomas Monjalon 2021-11-22 7:59 ` [EXT] " Rakesh Kudurumalla 2021-11-22 8:58 ` Thomas Monjalon 2021-11-29 8:52 ` Rakesh Kudurumalla 2021-11-29 9:13 ` Thomas Monjalon 2021-12-13 6:40 ` Rakesh Kudurumalla 2022-01-10 9:04 ` Rakesh Kudurumalla 2022-02-01 6:30 ` Rakesh Kudurumalla 2022-02-01 7:44 ` Thomas Monjalon 2022-02-14 4:56 ` Rakesh Kudurumalla 2022-05-09 10:01 ` Rakesh Kudurumalla 2022-05-24 5:39 ` Rakesh Kudurumalla 2022-05-25 8:02 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).