DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
@ 2015-10-27 11:41 Kevin Traynor
  2015-10-27 11:50 ` Bruce Richardson
  2015-10-27 13:56 ` Mcnamara, John
  0 siblings, 2 replies; 7+ messages in thread
From: Kevin Traynor @ 2015-10-27 11:41 UTC (permalink / raw)
  To: dev

Simple and vector are different tx code paths. If vector
is selected, change logging from:
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.

to:
PMD: ixgbe_set_tx_function(): Using vector tx code path

or, if simple selected:
PMD: ixgbe_set_tx_function(): Using simple tx code path

The dangling else in the #ifdef makes readability difficult,
so resolving in way that seems most readable.

Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index a598a72..11d7feb 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -1963,16 +1963,18 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev, struct ixgbe_tx_queue *txq)
 	/* Use a simple Tx queue (no offloads, no multi segs) if possible */
 	if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) == IXGBE_SIMPLE_FLAGS)
 			&& (txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
-		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
 #ifdef RTE_IXGBE_INC_VECTOR
 		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
 				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
 					ixgbe_txq_vec_setup(txq) == 0)) {
-			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
+			PMD_INIT_LOG(DEBUG, "Using vector tx code path");
 			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
 		} else
 #endif
-		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
+		{
+			PMD_INIT_LOG(DEBUG, "Using simple tx code path");
+			dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
+		}
 	} else {
 		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
 		PMD_INIT_LOG(DEBUG,
-- 
1.7.4.1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
  2015-10-27 11:41 [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection Kevin Traynor
@ 2015-10-27 11:50 ` Bruce Richardson
  2015-10-27 12:12   ` Ananyev, Konstantin
  2015-10-27 13:56 ` Mcnamara, John
  1 sibling, 1 reply; 7+ messages in thread
From: Bruce Richardson @ 2015-10-27 11:50 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: dev

On Tue, Oct 27, 2015 at 11:41:08AM +0000, Kevin Traynor wrote:
> Simple and vector are different tx code paths. If vector
> is selected, change logging from:
> PMD: ixgbe_set_tx_function(): Using simple tx code path
> PMD: ixgbe_set_tx_function(): Vector tx enabled.
> 
> to:
> PMD: ixgbe_set_tx_function(): Using vector tx code path
> 
> or, if simple selected:
> PMD: ixgbe_set_tx_function(): Using simple tx code path
> 
> The dangling else in the #ifdef makes readability difficult,
> so resolving in way that seems most readable.
> 
> Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx.c |    8 +++++---
>  1 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> index a598a72..11d7feb 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -1963,16 +1963,18 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev, struct ixgbe_tx_queue *txq)
>  	/* Use a simple Tx queue (no offloads, no multi segs) if possible */
>  	if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) == IXGBE_SIMPLE_FLAGS)
>  			&& (txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
> -		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
>  #ifdef RTE_IXGBE_INC_VECTOR
>  		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
>  				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
>  					ixgbe_txq_vec_setup(txq) == 0)) {
> -			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
> +			PMD_INIT_LOG(DEBUG, "Using vector tx code path");
>  			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
>  		} else
>  #endif
> -		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> +		{
> +			PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> +			dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> +		}
>  	} else {
>  		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
>  		PMD_INIT_LOG(DEBUG,
> -- 
> 1.7.4.1
> 
Hi Kevin,

can I suggest a slight alternative here that might help make things easier.
Instead of printing the message as we pick the code path, why not have a "logmsg"
pointer variable that is assigned in the code, and then print out the log path
at the end.

This would have a number of advantages:
1. there are no issues with changing our mind, so we can assign one path type, 
and then later change it to something different without cluttering up the debug
output with the history of our code's flow.
2. it means that you don't have a problem with smaller else legs as you can
easily do multiple assignments in the one line using a comma as:
	dev->tx_pkt_burst = ixgbe_xmit_pkts_simple, logmsg = "Using simple ...";

Regards,
/Bruce

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
  2015-10-27 11:50 ` Bruce Richardson
@ 2015-10-27 12:12   ` Ananyev, Konstantin
  2015-10-27 12:37     ` Bruce Richardson
  2015-10-27 17:31     ` Traynor, Kevin
  0 siblings, 2 replies; 7+ messages in thread
From: Ananyev, Konstantin @ 2015-10-27 12:12 UTC (permalink / raw)
  To: Richardson, Bruce, Traynor, Kevin; +Cc: dev



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Tuesday, October 27, 2015 11:50 AM
> To: Traynor, Kevin
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
> 
> On Tue, Oct 27, 2015 at 11:41:08AM +0000, Kevin Traynor wrote:
> > Simple and vector are different tx code paths. If vector
> > is selected, change logging from:
> > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > PMD: ixgbe_set_tx_function(): Vector tx enabled.
> >
> > to:
> > PMD: ixgbe_set_tx_function(): Using vector tx code path
> >
> > or, if simple selected:
> > PMD: ixgbe_set_tx_function(): Using simple tx code path
> >
> > The dangling else in the #ifdef makes readability difficult,
> > so resolving in way that seems most readable.
> >
> > Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>
> > ---
> >  drivers/net/ixgbe/ixgbe_rxtx.c |    8 +++++---
> >  1 files changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> > index a598a72..11d7feb 100644
> > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > @@ -1963,16 +1963,18 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev, struct ixgbe_tx_queue *txq)
> >  	/* Use a simple Tx queue (no offloads, no multi segs) if possible */
> >  	if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) == IXGBE_SIMPLE_FLAGS)
> >  			&& (txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
> > -		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> >  #ifdef RTE_IXGBE_INC_VECTOR
> >  		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
> >  				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
> >  					ixgbe_txq_vec_setup(txq) == 0)) {
> > -			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
> > +			PMD_INIT_LOG(DEBUG, "Using vector tx code path");
> >  			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
> >  		} else
> >  #endif
> > -		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > +		{
> > +			PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > +			dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > +		}
> >  	} else {
> >  		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
> >  		PMD_INIT_LOG(DEBUG,
> > --
> > 1.7.4.1
> >
> Hi Kevin,
> 
> can I suggest a slight alternative here that might help make things easier.
> Instead of printing the message as we pick the code path, why not have a "logmsg"
> pointer variable that is assigned in the code, and then print out the log path
> at the end.
> 
> This would have a number of advantages:
> 1. there are no issues with changing our mind, so we can assign one path type,
> and then later change it to something different without cluttering up the debug
> output with the history of our code's flow.
> 2. it means that you don't have a problem with smaller else legs as you can
> easily do multiple assignments in the one line using a comma as:
> 	dev->tx_pkt_burst = ixgbe_xmit_pkts_simple, logmsg = "Using simple ...";

While I like approach with logmsg, please avoid commas here.
It will make this peace of code even more hard to read (at least for me).
Konstantin 

> 
> Regards,
> /Bruce

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
  2015-10-27 12:12   ` Ananyev, Konstantin
@ 2015-10-27 12:37     ` Bruce Richardson
  2015-10-27 17:31     ` Traynor, Kevin
  1 sibling, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2015-10-27 12:37 UTC (permalink / raw)
  To: Ananyev, Konstantin; +Cc: dev

On Tue, Oct 27, 2015 at 12:12:39PM +0000, Ananyev, Konstantin wrote:
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> > Sent: Tuesday, October 27, 2015 11:50 AM
> > To: Traynor, Kevin
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
> > 
> > On Tue, Oct 27, 2015 at 11:41:08AM +0000, Kevin Traynor wrote:
> > > Simple and vector are different tx code paths. If vector
> > > is selected, change logging from:
> > > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > > PMD: ixgbe_set_tx_function(): Vector tx enabled.
> > >
> > > to:
> > > PMD: ixgbe_set_tx_function(): Using vector tx code path
> > >
> > > or, if simple selected:
> > > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > >
> > > The dangling else in the #ifdef makes readability difficult,
> > > so resolving in way that seems most readable.
> > >
> > > Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>
> > > ---
> > >  drivers/net/ixgbe/ixgbe_rxtx.c |    8 +++++---
> > >  1 files changed, 5 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > index a598a72..11d7feb 100644
> > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > @@ -1963,16 +1963,18 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev, struct ixgbe_tx_queue *txq)
> > >  	/* Use a simple Tx queue (no offloads, no multi segs) if possible */
> > >  	if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) == IXGBE_SIMPLE_FLAGS)
> > >  			&& (txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
> > > -		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > >  #ifdef RTE_IXGBE_INC_VECTOR
> > >  		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
> > >  				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
> > >  					ixgbe_txq_vec_setup(txq) == 0)) {
> > > -			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
> > > +			PMD_INIT_LOG(DEBUG, "Using vector tx code path");
> > >  			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
> > >  		} else
> > >  #endif
> > > -		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > > +		{
> > > +			PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > > +			dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > > +		}
> > >  	} else {
> > >  		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
> > >  		PMD_INIT_LOG(DEBUG,
> > > --
> > > 1.7.4.1
> > >
> > Hi Kevin,
> > 
> > can I suggest a slight alternative here that might help make things easier.
> > Instead of printing the message as we pick the code path, why not have a "logmsg"
> > pointer variable that is assigned in the code, and then print out the log path
> > at the end.
> > 
> > This would have a number of advantages:
> > 1. there are no issues with changing our mind, so we can assign one path type,
> > and then later change it to something different without cluttering up the debug
> > output with the history of our code's flow.
> > 2. it means that you don't have a problem with smaller else legs as you can
> > easily do multiple assignments in the one line using a comma as:
> > 	dev->tx_pkt_burst = ixgbe_xmit_pkts_simple, logmsg = "Using simple ...";
> 
> While I like approach with logmsg, please avoid commas here.
> It will make this peace of code even more hard to read (at least for me).
> Konstantin 
> 

Sure, it's a matter of taste. I'd much prefer a single line with commas to the
awkwardness above trying to manage braces around an ifdef. I'll leave it to 
Kevin to see what he comes up with. :-)

/Bruce

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
  2015-10-27 11:41 [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection Kevin Traynor
  2015-10-27 11:50 ` Bruce Richardson
@ 2015-10-27 13:56 ` Mcnamara, John
  1 sibling, 0 replies; 7+ messages in thread
From: Mcnamara, John @ 2015-10-27 13:56 UTC (permalink / raw)
  To: Traynor, Kevin, dev

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Kevin Traynor
> Sent: Tuesday, October 27, 2015 11:41 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path
> selection
> 
> Simple and vector are different tx code paths. If vector is selected,
> change logging from:
> PMD: ixgbe_set_tx_function(): Using simple tx code path
> PMD: ixgbe_set_tx_function(): Vector tx enabled.
> 
> to:
> PMD: ixgbe_set_tx_function(): Using vector tx code path
> 
> or, if simple selected:
> PMD: ixgbe_set_tx_function(): Using simple tx code path
> 
> The dangling else in the #ifdef makes readability difficult, so resolving
> in way that seems most readable.
> 
> Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>

Acked-by: John McNamara <john.mcnamara@intel.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
  2015-10-27 12:12   ` Ananyev, Konstantin
  2015-10-27 12:37     ` Bruce Richardson
@ 2015-10-27 17:31     ` Traynor, Kevin
  2015-10-28 10:54       ` Bruce Richardson
  1 sibling, 1 reply; 7+ messages in thread
From: Traynor, Kevin @ 2015-10-27 17:31 UTC (permalink / raw)
  To: Ananyev, Konstantin, Richardson, Bruce; +Cc: dev


> -----Original Message-----
> From: Ananyev, Konstantin
> Sent: Tuesday, October 27, 2015 12:13 PM
> To: Richardson, Bruce; Traynor, Kevin
> Cc: dev@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path
> selection
> 
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> > Sent: Tuesday, October 27, 2015 11:50 AM
> > To: Traynor, Kevin
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code
> path selection
> >
> > On Tue, Oct 27, 2015 at 11:41:08AM +0000, Kevin Traynor wrote:
> > > Simple and vector are different tx code paths. If vector
> > > is selected, change logging from:
> > > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > > PMD: ixgbe_set_tx_function(): Vector tx enabled.
> > >
> > > to:
> > > PMD: ixgbe_set_tx_function(): Using vector tx code path
> > >
> > > or, if simple selected:
> > > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > >
> > > The dangling else in the #ifdef makes readability difficult,
> > > so resolving in way that seems most readable.
> > >
> > > Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>
> > > ---
> > >  drivers/net/ixgbe/ixgbe_rxtx.c |    8 +++++---
> > >  1 files changed, 5 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > index a598a72..11d7feb 100644
> > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > @@ -1963,16 +1963,18 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev,
> struct ixgbe_tx_queue *txq)
> > >  	/* Use a simple Tx queue (no offloads, no multi segs) if possible */
> > >  	if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) == IXGBE_SIMPLE_FLAGS)
> > >  			&& (txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
> > > -		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > >  #ifdef RTE_IXGBE_INC_VECTOR
> > >  		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
> > >  				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
> > >  					ixgbe_txq_vec_setup(txq) == 0)) {
> > > -			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
> > > +			PMD_INIT_LOG(DEBUG, "Using vector tx code path");
> > >  			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
> > >  		} else
> > >  #endif
> > > -		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > > +		{
> > > +			PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > > +			dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > > +		}
> > >  	} else {
> > >  		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
> > >  		PMD_INIT_LOG(DEBUG,
> > > --
> > > 1.7.4.1
> > >
> > Hi Kevin,
> >
> > can I suggest a slight alternative here that might help make things easier.
> > Instead of printing the message as we pick the code path, why not have a
> "logmsg"
> > pointer variable that is assigned in the code, and then print out the log
> path
> > at the end.
> >
> > This would have a number of advantages:
> > 1. there are no issues with changing our mind, so we can assign one path
> type,
> > and then later change it to something different without cluttering up the
> debug
> > output with the history of our code's flow.
> > 2. it means that you don't have a problem with smaller else legs as you can
> > easily do multiple assignments in the one line using a comma as:
> > 	dev->tx_pkt_burst = ixgbe_xmit_pkts_simple, logmsg = "Using simple
> ...";
> 
> While I like approach with logmsg, please avoid commas here.
> It will make this peace of code even more hard to read (at least for me).
> Konstantin

yeah, sure. I agree with changing for 1. I also agree with Konstantin re commas.
The code under the dangling else is aligned incorrectly/correctly depending on
whether the #ifdef is true or not, so I think adding multiple statements with {}
now will make it obvious for the next person who modifies.

> 
> >
> > Regards,
> > /Bruce

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection
  2015-10-27 17:31     ` Traynor, Kevin
@ 2015-10-28 10:54       ` Bruce Richardson
  0 siblings, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2015-10-28 10:54 UTC (permalink / raw)
  To: Traynor, Kevin; +Cc: dev

On Tue, Oct 27, 2015 at 05:31:59PM +0000, Traynor, Kevin wrote:
> 
> > -----Original Message-----
> > From: Ananyev, Konstantin
> > Sent: Tuesday, October 27, 2015 12:13 PM
> > To: Richardson, Bruce; Traynor, Kevin
> > Cc: dev@dpdk.org
> > Subject: RE: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path
> > selection
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> > > Sent: Tuesday, October 27, 2015 11:50 AM
> > > To: Traynor, Kevin
> > > Cc: dev@dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code
> > path selection
> > >
> > > On Tue, Oct 27, 2015 at 11:41:08AM +0000, Kevin Traynor wrote:
> > > > Simple and vector are different tx code paths. If vector
> > > > is selected, change logging from:
> > > > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > > > PMD: ixgbe_set_tx_function(): Vector tx enabled.
> > > >
> > > > to:
> > > > PMD: ixgbe_set_tx_function(): Using vector tx code path
> > > >
> > > > or, if simple selected:
> > > > PMD: ixgbe_set_tx_function(): Using simple tx code path
> > > >
> > > > The dangling else in the #ifdef makes readability difficult,
> > > > so resolving in way that seems most readable.
> > > >
> > > > Signed-off-by: Kevin Traynor <kevin.traynor@intel.com>
> > > > ---
> > > >  drivers/net/ixgbe/ixgbe_rxtx.c |    8 +++++---
> > > >  1 files changed, 5 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > index a598a72..11d7feb 100644
> > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > @@ -1963,16 +1963,18 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev,
> > struct ixgbe_tx_queue *txq)
> > > >  	/* Use a simple Tx queue (no offloads, no multi segs) if possible */
> > > >  	if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) == IXGBE_SIMPLE_FLAGS)
> > > >  			&& (txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
> > > > -		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > > >  #ifdef RTE_IXGBE_INC_VECTOR
> > > >  		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
> > > >  				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
> > > >  					ixgbe_txq_vec_setup(txq) == 0)) {
> > > > -			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
> > > > +			PMD_INIT_LOG(DEBUG, "Using vector tx code path");
> > > >  			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
> > > >  		} else
> > > >  #endif
> > > > -		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > > > +		{
> > > > +			PMD_INIT_LOG(DEBUG, "Using simple tx code path");
> > > > +			dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
> > > > +		}
> > > >  	} else {
> > > >  		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
> > > >  		PMD_INIT_LOG(DEBUG,
> > > > --
> > > > 1.7.4.1
> > > >
> > > Hi Kevin,
> > >
> > > can I suggest a slight alternative here that might help make things easier.
> > > Instead of printing the message as we pick the code path, why not have a
> > "logmsg"
> > > pointer variable that is assigned in the code, and then print out the log
> > path
> > > at the end.
> > >
> > > This would have a number of advantages:
> > > 1. there are no issues with changing our mind, so we can assign one path
> > type,
> > > and then later change it to something different without cluttering up the
> > debug
> > > output with the history of our code's flow.
> > > 2. it means that you don't have a problem with smaller else legs as you can
> > > easily do multiple assignments in the one line using a comma as:
> > > 	dev->tx_pkt_burst = ixgbe_xmit_pkts_simple, logmsg = "Using simple
> > ...";
> > 
> > While I like approach with logmsg, please avoid commas here.
> > It will make this peace of code even more hard to read (at least for me).
> > Konstantin
> 
> yeah, sure. I agree with changing for 1. I also agree with Konstantin re commas.
> The code under the dangling else is aligned incorrectly/correctly depending on
> whether the #ifdef is true or not, so I think adding multiple statements with {}
> now will make it obvious for the next person who modifies.
> 
Final alternative is to have a switch statement at the end of the block for
printing based on what the final function selection is. That way there is only
a single assignment needed and no awkward braces. :-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-10-28 10:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-27 11:41 [dpdk-dev] [PATCH] ixgbe: change logging for ixgbe tx code path selection Kevin Traynor
2015-10-27 11:50 ` Bruce Richardson
2015-10-27 12:12   ` Ananyev, Konstantin
2015-10-27 12:37     ` Bruce Richardson
2015-10-27 17:31     ` Traynor, Kevin
2015-10-28 10:54       ` Bruce Richardson
2015-10-27 13:56 ` Mcnamara, John

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).