examples/distributor: one Tx queue is enough

Message ID 20220307223946.578201-1-honnappa.nagarahalli@arm.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series examples/distributor: one Tx queue is enough |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS

Commit Message

Honnappa Nagarahalli March 7, 2022, 10:39 p.m. UTC
  Distributor application creates one Tx queue per core. However
the transmit is done only from a single core. Hence creating
one Tx queue is enough.

Fixes: 07db4a975094 ("examples/distributor: new sample app")
Cc: bruce.richardson@intel.com
Cc: reshma.pattan@intel.com
Cc: stable@dpdk.org

Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
DTS test cases make this change to DPDK. However, I find that, one
queue is enough. Hence we could make this change in DPDK.

 examples/distributor/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Honnappa Nagarahalli March 8, 2022, 3:26 a.m. UTC | #1
The ABI test failure is not related to this patch.
Thanks,
Honnappa

> -----Original Message-----
> From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
> Sent: Monday, March 7, 2022 4:40 PM
> To: dev@dpdk.org; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; lijuan.tu@intel.com;
> juraj.linkes@pantheon.tech; ohilyard@iol.unh.edu;
> david.marchand@redhat.com; thomas@monjalon.net; david.hunt@intel.com
> Cc: Ruifeng Wang <Ruifeng.Wang@arm.com>; nd <nd@arm.com>;
> bruce.richardson@intel.com; reshma.pattan@intel.com; stable@dpdk.org
> Subject: [PATCH] examples/distributor: one Tx queue is enough
> 
> Distributor application creates one Tx queue per core. However the transmit is
> done only from a single core. Hence creating one Tx queue is enough.
> 
> Fixes: 07db4a975094 ("examples/distributor: new sample app")
> Cc: bruce.richardson@intel.com
> Cc: reshma.pattan@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
> DTS test cases make this change to DPDK. However, I find that, one queue is
> enough. Hence we could make this change in DPDK.
> 
>  examples/distributor/main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/examples/distributor/main.c b/examples/distributor/main.c index
> c681e237ea..02bf91f555 100644
> --- a/examples/distributor/main.c
> +++ b/examples/distributor/main.c
> @@ -108,7 +108,7 @@ static inline int
>  port_init(uint16_t port, struct rte_mempool *mbuf_pool)  {
>  	struct rte_eth_conf port_conf = port_conf_default;
> -	const uint16_t rxRings = 1, txRings = rte_lcore_count() - 1;
> +	const uint16_t rxRings = 1, txRings = 1;
>  	int retval;
>  	uint16_t q;
>  	uint16_t nb_rxd = RX_RING_SIZE;
> --
> 2.25.1
  
Bruce Richardson March 8, 2022, 10 a.m. UTC | #2
On Mon, Mar 07, 2022 at 10:39:46PM +0000, Honnappa Nagarahalli wrote:
> Distributor application creates one Tx queue per core. However
> the transmit is done only from a single core. Hence creating
> one Tx queue is enough.
> 
> Fixes: 07db4a975094 ("examples/distributor: new sample app")
> Cc: bruce.richardson@intel.com
> Cc: reshma.pattan@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
> DTS test cases make this change to DPDK. However, I find that, one
> queue is enough. Hence we could make this change in DPDK.
> 
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Do we know why DTS is making this change? Does having more TX queues than
necessary cause problems?
  
Thomas Monjalon March 8, 2022, 11:40 a.m. UTC | #3
08/03/2022 11:00, Bruce Richardson:
> On Mon, Mar 07, 2022 at 10:39:46PM +0000, Honnappa Nagarahalli wrote:
> > Distributor application creates one Tx queue per core. However
> > the transmit is done only from a single core. Hence creating
> > one Tx queue is enough.
> > 
> > Fixes: 07db4a975094 ("examples/distributor: new sample app")
> > Cc: bruce.richardson@intel.com
> > Cc: reshma.pattan@intel.com
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > ---
> > DTS test cases make this change to DPDK. However, I find that, one
> > queue is enough. Hence we could make this change in DPDK.
> > 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Applied, thanks.
  
Tu, Lijuan March 8, 2022, 2:55 p.m. UTC | #4
> Do we know why DTS is making this change? Does having more TX queues than
> necessary cause problems?

DTS is to reduce tx queues to enable many workers for performance testing.
Distributor application creates one Tx queue per core, and total (lcore-1) queues, 
Which make it only 1 worker, but it only use a single queue to transmit. 
That's not make sense, so we request to fix it.
  

Patch

diff --git a/examples/distributor/main.c b/examples/distributor/main.c
index c681e237ea..02bf91f555 100644
--- a/examples/distributor/main.c
+++ b/examples/distributor/main.c
@@ -108,7 +108,7 @@  static inline int
 port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 {
 	struct rte_eth_conf port_conf = port_conf_default;
-	const uint16_t rxRings = 1, txRings = rte_lcore_count() - 1;
+	const uint16_t rxRings = 1, txRings = 1;
 	int retval;
 	uint16_t q;
 	uint16_t nb_rxd = RX_RING_SIZE;