[dpdk-dev] examples/flow_filtering: add Tx queues setup process

Message ID 20171226092104.82707-1-wei.zhao1@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Helin Zhang
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Zhao1, Wei Dec. 26, 2017, 9:21 a.m. UTC
  This example do not has the process of set up tx queues, but
some NIC start up process will be blocked if this is no tx queue
and only rx queues. So add tx queues setup process in main code.

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
---
 examples/flow_filtering/main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
  

Comments

Zhao1, Wei Dec. 26, 2017, 10:03 a.m. UTC | #1
Add maintainer orika@mellanox.com into cc list.


> -----Original Message-----
> From: Zhao1, Wei
> Sent: Tuesday, December 26, 2017 5:21 PM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Zhao1, Wei
> <wei.zhao1@intel.com>
> Subject: [PATCH] examples/flow_filtering: add Tx queues setup process
> 
> This example do not has the process of set up tx queues, but some NIC start
> up process will be blocked if this is no tx queue and only rx queues. So add tx
> queues setup process in main code.
> 
> Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
> ---
>  examples/flow_filtering/main.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
> index 7d739b4..b5c7677 100644
> --- a/examples/flow_filtering/main.c
> +++ b/examples/flow_filtering/main.c
> @@ -173,6 +173,17 @@ init_port(void)
>  		}
>  	}
> 
> +	for (i = 0; i < nr_queues; i++) {
> +		ret = rte_eth_tx_queue_setup(port_id, i, 512,
> +				rte_eth_dev_socket_id(port_id),
> +				NULL);
> +		if (ret < 0) {
> +			rte_exit(EXIT_FAILURE,
> +				":: Tx queue setup failed: err=%d,
> port=%u\n",
> +				ret, port_id);
> +		}
> +	}
> +
>  	rte_eth_promiscuous_enable(port_id);
>  	ret = rte_eth_dev_start(port_id);
>  	if (ret < 0) {
> --
> 2.9.3
  
Ori Kam Dec. 26, 2017, 2:08 p.m. UTC | #2
Hi Wei,

Your patch looks good, but there is an ack patch that deals with offloads.
http://dpdk.org/ml/archives/dev/2017-December/083639.html

Please update your patch to support the new tx offloads. 

Regards,
Ori


> -----Original Message-----
> From: Zhao1, Wei [mailto:wei.zhao1@intel.com]
> Sent: Tuesday, December 26, 2017 12:03 PM
> To: Ori Kam <orika@mellanox.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH] examples/flow_filtering: add Tx queues setup process
> 
> Add maintainer orika@mellanox.com into cc list.
> 
> 
> > -----Original Message-----
> > From: Zhao1, Wei
> > Sent: Tuesday, December 26, 2017 5:21 PM
> > To: dev@dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Zhao1, Wei
> > <wei.zhao1@intel.com>
> > Subject: [PATCH] examples/flow_filtering: add Tx queues setup process
> >
> > This example do not has the process of set up tx queues, but some NIC
> > start up process will be blocked if this is no tx queue and only rx
> > queues. So add tx queues setup process in main code.
> >
> > Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
> > ---
> >  examples/flow_filtering/main.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/examples/flow_filtering/main.c
> > b/examples/flow_filtering/main.c index 7d739b4..b5c7677 100644
> > --- a/examples/flow_filtering/main.c
> > +++ b/examples/flow_filtering/main.c
> > @@ -173,6 +173,17 @@ init_port(void)
> >  		}
> >  	}
> >
> > +	for (i = 0; i < nr_queues; i++) {
> > +		ret = rte_eth_tx_queue_setup(port_id, i, 512,
> > +				rte_eth_dev_socket_id(port_id),
> > +				NULL);
> > +		if (ret < 0) {
> > +			rte_exit(EXIT_FAILURE,
> > +				":: Tx queue setup failed: err=%d,
> > port=%u\n",
> > +				ret, port_id);
> > +		}
> > +	}
> > +
> >  	rte_eth_promiscuous_enable(port_id);
> >  	ret = rte_eth_dev_start(port_id);
> >  	if (ret < 0) {
> > --
> > 2.9.3
  
Zhao1, Wei Dec. 27, 2017, 8:43 a.m. UTC | #3
Hi, Ori Kam

Thank you for your suggestion.
I have commit a v2 to DPDK.org.

https://dpdk.org/dev/patchwork/patch/32768/



> -----Original Message-----
> From: Ori Kam [mailto:orika@mellanox.com]
> Sent: Tuesday, December 26, 2017 10:09 PM
> To: Zhao1, Wei <wei.zhao1@intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH] examples/flow_filtering: add Tx queues setup process
> 
> Hi Wei,
> 
> Your patch looks good, but there is an ack patch that deals with offloads.
> http://dpdk.org/ml/archives/dev/2017-December/083639.html
> 
> Please update your patch to support the new tx offloads.
> 
> Regards,
> Ori
> 
> 
> > -----Original Message-----
> > From: Zhao1, Wei [mailto:wei.zhao1@intel.com]
> > Sent: Tuesday, December 26, 2017 12:03 PM
> > To: Ori Kam <orika@mellanox.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> > Subject: RE: [PATCH] examples/flow_filtering: add Tx queues setup
> > process
> >
> > Add maintainer orika@mellanox.com into cc list.
> >
> >
> > > -----Original Message-----
> > > From: Zhao1, Wei
> > > Sent: Tuesday, December 26, 2017 5:21 PM
> > > To: dev@dpdk.org
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Zhao1, Wei
> > > <wei.zhao1@intel.com>
> > > Subject: [PATCH] examples/flow_filtering: add Tx queues setup
> > > process
> > >
> > > This example do not has the process of set up tx queues, but some
> > > NIC start up process will be blocked if this is no tx queue and only
> > > rx queues. So add tx queues setup process in main code.
> > >
> > > Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
> > > ---
> > >  examples/flow_filtering/main.c | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > >
> > > diff --git a/examples/flow_filtering/main.c
> > > b/examples/flow_filtering/main.c index 7d739b4..b5c7677 100644
> > > --- a/examples/flow_filtering/main.c
> > > +++ b/examples/flow_filtering/main.c
> > > @@ -173,6 +173,17 @@ init_port(void)
> > >  		}
> > >  	}
> > >
> > > +	for (i = 0; i < nr_queues; i++) {
> > > +		ret = rte_eth_tx_queue_setup(port_id, i, 512,
> > > +				rte_eth_dev_socket_id(port_id),
> > > +				NULL);
> > > +		if (ret < 0) {
> > > +			rte_exit(EXIT_FAILURE,
> > > +				":: Tx queue setup failed: err=%d,
> > > port=%u\n",
> > > +				ret, port_id);
> > > +		}
> > > +	}
> > > +
> > >  	rte_eth_promiscuous_enable(port_id);
> > >  	ret = rte_eth_dev_start(port_id);
> > >  	if (ret < 0) {
> > > --
> > > 2.9.3
  

Patch

diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
index 7d739b4..b5c7677 100644
--- a/examples/flow_filtering/main.c
+++ b/examples/flow_filtering/main.c
@@ -173,6 +173,17 @@  init_port(void)
 		}
 	}
 
+	for (i = 0; i < nr_queues; i++) {
+		ret = rte_eth_tx_queue_setup(port_id, i, 512,
+				rte_eth_dev_socket_id(port_id),
+				NULL);
+		if (ret < 0) {
+			rte_exit(EXIT_FAILURE,
+				":: Tx queue setup failed: err=%d, port=%u\n",
+				ret, port_id);
+		}
+	}
+
 	rte_eth_promiscuous_enable(port_id);
 	ret = rte_eth_dev_start(port_id);
 	if (ret < 0) {