net/e1000: do not error out if rx_drop_en is set

Message ID 20180727172607.16890-1-bluca@debian.org (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series net/e1000: do not error out if rx_drop_en is set |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Luca Boccassi July 27, 2018, 5:26 p.m. UTC
  rx_drop_en is an optimization that does nothing on single-queue
devices like e1000. Do not force applications that do not care to
select per-devices optimizations flags by returning an error, just
log it and carry on.

Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)")
Cc: stable@dpdk.org

Signed-off-by: Luca Boccassi <bluca@debian.org>
---
 drivers/net/e1000/em_rxtx.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Luca Boccassi Sept. 26, 2018, 10:22 a.m. UTC | #1
On Fri, 2018-07-27 at 18:26 +0100, Luca Boccassi wrote:
> rx_drop_en is an optimization that does nothing on single-queue
> devices like e1000. Do not force applications that do not care to
> select per-devices optimizations flags by returning an error, just
> log it and carry on.
> 
> Fixes: 805803445a02 ("e1000: support EM devices (also known as
> e1000/e1000e)")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Luca Boccassi <bluca@debian.org>
> ---
>  drivers/net/e1000/em_rxtx.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)

Ping. Any chance this could get a review? Thanks!
  
Zhao1, Wei Oct. 8, 2018, 8:43 a.m. UTC | #2
Hi,  Luca Boccassi

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Luca Boccassi
> Sent: Saturday, July 28, 2018 1:26 AM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Luca Boccassi
> <bluca@debian.org>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/e1000: do not error out if rx_drop_en is set
> 
> rx_drop_en is an optimization that does nothing on single-queue devices like
> e1000. Do not force applications that do not care to select per-devices

And aslo, eth_em_rx_queue_setup support set up of multiple queues for EM device.

> optimizations flags by returning an error, just log it and carry on.

rx_drop_en is a flag to enable receive packets drop when insufficient receive descriptors exist to write the packet into system memory.
if we delete this parameter check protection, it may be misleading some applications for this point, why does not give some requirement 
for proper usage of this? I do not suggest for this change.
You can also refer to function eth_igb_rx_queue_setup(), igb device support rx_drop_en set, so we do not have a such parameter check.

> 
> Fixes: 805803445a02 ("e1000: support EM devices (also known as
> e1000/e1000e)")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Luca Boccassi <bluca@debian.org>
> ---
>  drivers/net/e1000/em_rxtx.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
> index a6b3e92a6..81dc41efb 100644
> --- a/drivers/net/e1000/em_rxtx.c
> +++ b/drivers/net/e1000/em_rxtx.c
> @@ -1416,12 +1416,13 @@ eth_em_rx_queue_setup(struct rte_eth_dev
> *dev,
>  	}
> 
>  	/*
> -	 * EM devices don't support drop_en functionality
> +	 * EM devices don't support drop_en functionality.
> +	 * It's an optimization that does nothing on single-queue devices,
> +	 * so just log the issue and carry on.
>  	 */
>  	if (rx_conf->rx_drop_en) {
> -		PMD_INIT_LOG(ERR, "drop_en functionality not supported
> by "
> +		PMD_INIT_LOG(NOTICE, "drop_en functionality not
> supported by "
>  			     "device");
> -		return -EINVAL;
>  	}
> 
>  	/* Free memory prior to re-allocation if needed. */
> --
> 2.18.0
  
Zhao1, Wei Oct. 8, 2018, 9:49 a.m. UTC | #3
Add Qi for discussion.

> -----Original Message-----
> From: Zhao1, Wei
> Sent: Monday, October 8, 2018 4:43 PM
> To: 'Luca Boccassi' <bluca@debian.org>; dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] net/e1000: do not error out if rx_drop_en is
> set
> 
> Hi,  Luca Boccassi
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Luca Boccassi
> > Sent: Saturday, July 28, 2018 1:26 AM
> > To: dev@dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Luca Boccassi
> > <bluca@debian.org>; stable@dpdk.org
> > Subject: [dpdk-dev] [PATCH] net/e1000: do not error out if rx_drop_en
> > is set
> >
> > rx_drop_en is an optimization that does nothing on single-queue
> > devices like e1000. Do not force applications that do not care to
> > select per-devices
> 
> And aslo, eth_em_rx_queue_setup support set up of multiple queues for
> EM device.
> 
> > optimizations flags by returning an error, just log it and carry on.
> 
> rx_drop_en is a flag to enable receive packets drop when insufficient receive
> descriptors exist to write the packet into system memory.
> if we delete this parameter check protection, it may be misleading some
> applications for this point, why does not give some requirement for proper
> usage of this? I do not suggest for this change.
> You can also refer to function eth_igb_rx_queue_setup(), igb device support
> rx_drop_en set, so we do not have a such parameter check.
> 
> >
> > Fixes: 805803445a02 ("e1000: support EM devices (also known as
> > e1000/e1000e)")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > ---
> >  drivers/net/e1000/em_rxtx.c | 7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
> > index a6b3e92a6..81dc41efb 100644
> > --- a/drivers/net/e1000/em_rxtx.c
> > +++ b/drivers/net/e1000/em_rxtx.c
> > @@ -1416,12 +1416,13 @@ eth_em_rx_queue_setup(struct rte_eth_dev
> *dev,
> >  	}
> >
> >  	/*
> > -	 * EM devices don't support drop_en functionality
> > +	 * EM devices don't support drop_en functionality.
> > +	 * It's an optimization that does nothing on single-queue devices,
> > +	 * so just log the issue and carry on.
> >  	 */
> >  	if (rx_conf->rx_drop_en) {
> > -		PMD_INIT_LOG(ERR, "drop_en functionality not supported
> > by "
> > +		PMD_INIT_LOG(NOTICE, "drop_en functionality not
> > supported by "
> >  			     "device");
> > -		return -EINVAL;
> >  	}
> >
> >  	/* Free memory prior to re-allocation if needed. */
> > --
> > 2.18.0
  
Luca Boccassi Oct. 8, 2018, 2:14 p.m. UTC | #4
On Mon, 2018-10-08 at 08:43 +0000, Zhao1, Wei wrote:
> Hi,  Luca Boccassi
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Luca Boccassi
> > Sent: Saturday, July 28, 2018 1:26 AM
> > To: dev@dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Luca Boccassi
> > <bluca@debian.org>; stable@dpdk.org
> > Subject: [dpdk-dev] [PATCH] net/e1000: do not error out if
> > rx_drop_en is set
> > 
> > rx_drop_en is an optimization that does nothing on single-queue
> > devices like
> > e1000. Do not force applications that do not care to select per-
> > devices
> 
> And aslo, eth_em_rx_queue_setup support set up of multiple queues for
> EM device.
> 
> > optimizations flags by returning an error, just log it and carry
> > on.
> 
> rx_drop_en is a flag to enable receive packets drop when insufficient
> receive descriptors exist to write the packet into system memory.
> if we delete this parameter check protection, it may be misleading
> some applications for this point, why does not give some requirement 
> for proper usage of this? I do not suggest for this change.
> You can also refer to function eth_igb_rx_queue_setup(), igb device
> support rx_drop_en set, so we do not have a such parameter check.

Hi,

As mentioned, because given it does nothing it's not worth aborting the
program with an error. Logging a notice level message and carrying on
is sufficient.
We should try not make it harder than necessary for application
developers.

> > 
> > Fixes: 805803445a02 ("e1000: support EM devices (also known as
> > e1000/e1000e)")
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > ---
> >  drivers/net/e1000/em_rxtx.c | 7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/net/e1000/em_rxtx.c
> > b/drivers/net/e1000/em_rxtx.c
> > index a6b3e92a6..81dc41efb 100644
> > --- a/drivers/net/e1000/em_rxtx.c
> > +++ b/drivers/net/e1000/em_rxtx.c
> > @@ -1416,12 +1416,13 @@ eth_em_rx_queue_setup(struct rte_eth_dev
> > *dev,
> >  	}
> > 
> >  	/*
> > -	 * EM devices don't support drop_en functionality
> > +	 * EM devices don't support drop_en functionality.
> > +	 * It's an optimization that does nothing on single-queue
> > devices,
> > +	 * so just log the issue and carry on.
> >  	 */
> >  	if (rx_conf->rx_drop_en) {
> > -		PMD_INIT_LOG(ERR, "drop_en functionality not
> > supported
> > by "
> > +		PMD_INIT_LOG(NOTICE, "drop_en functionality not
> > supported by "
> >  			     "device");
> > -		return -EINVAL;
> >  	}
> > 
> >  	/* Free memory prior to re-allocation if needed. */
> > --
> > 2.18.0
> 
>
  
Zhao1, Wei Oct. 10, 2018, 7:25 a.m. UTC | #5
Acked-by: Wei Zhao <wei.zhao1@intel.com>


> -----Original Message-----
> From: Luca Boccassi [mailto:bluca@debian.org]
> Sent: Monday, October 8, 2018 10:14 PM
> To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>; 3chas3@gmail.com
> Subject: Re: [dpdk-dev] [PATCH] net/e1000: do not error out if rx_drop_en is
> set
> 
> On Mon, 2018-10-08 at 08:43 +0000, Zhao1, Wei wrote:
> > Hi,  Luca Boccassi
> >
> > > -----Original Message-----
> > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Luca Boccassi
> > > Sent: Saturday, July 28, 2018 1:26 AM
> > > To: dev@dpdk.org
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Luca Boccassi
> > > <bluca@debian.org>; stable@dpdk.org
> > > Subject: [dpdk-dev] [PATCH] net/e1000: do not error out if
> > > rx_drop_en is set
> > >
> > > rx_drop_en is an optimization that does nothing on single-queue
> > > devices like e1000. Do not force applications that do not care to
> > > select per- devices
> >
> > And aslo, eth_em_rx_queue_setup support set up of multiple queues for
> > EM device.
> >
> > > optimizations flags by returning an error, just log it and carry on.
> >
> > rx_drop_en is a flag to enable receive packets drop when insufficient
> > receive descriptors exist to write the packet into system memory.
> > if we delete this parameter check protection, it may be misleading
> > some applications for this point, why does not give some requirement
> > for proper usage of this? I do not suggest for this change.
> > You can also refer to function eth_igb_rx_queue_setup(), igb device
> > support rx_drop_en set, so we do not have a such parameter check.
> 
> Hi,
> 
> As mentioned, because given it does nothing it's not worth aborting the
> program with an error. Logging a notice level message and carrying on is
> sufficient.
> We should try not make it harder than necessary for application developers.
> 
> > >
> > > Fixes: 805803445a02 ("e1000: support EM devices (also known as
> > > e1000/e1000e)")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > > ---
> > >  drivers/net/e1000/em_rxtx.c | 7 ++++---
> > >  1 file changed, 4 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/net/e1000/em_rxtx.c
> > > b/drivers/net/e1000/em_rxtx.c index a6b3e92a6..81dc41efb 100644
> > > --- a/drivers/net/e1000/em_rxtx.c
> > > +++ b/drivers/net/e1000/em_rxtx.c
> > > @@ -1416,12 +1416,13 @@ eth_em_rx_queue_setup(struct
> rte_eth_dev
> > > *dev,
> > >  	}
> > >
> > >  	/*
> > > -	 * EM devices don't support drop_en functionality
> > > +	 * EM devices don't support drop_en functionality.
> > > +	 * It's an optimization that does nothing on single-queue
> > > devices,
> > > +	 * so just log the issue and carry on.
> > >  	 */
> > >  	if (rx_conf->rx_drop_en) {
> > > -		PMD_INIT_LOG(ERR, "drop_en functionality not
> > > supported
> > > by "
> > > +		PMD_INIT_LOG(NOTICE, "drop_en functionality not
> > > supported by "
> > >  			     "device");
> > > -		return -EINVAL;
> > >  	}
> > >
> > >  	/* Free memory prior to re-allocation if needed. */
> > > --
> > > 2.18.0
> >
> >
> 
> --
> Kind regards,
> Luca Boccassi
  
Qi Zhang Oct. 10, 2018, 5:57 p.m. UTC | #6
> -----Original Message-----
> From: Zhao1, Wei
> Sent: Wednesday, October 10, 2018 12:25 AM
> To: Luca Boccassi <bluca@debian.org>; dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>; 3chas3@gmail.com
> Subject: RE: [dpdk-dev] [PATCH] net/e1000: do not error out if rx_drop_en is
> set
> 
> Acked-by: Wei Zhao <wei.zhao1@intel.com>

Applied to dpdk-next-net-intel with minor change on the title to avoid check-git-log warning.

Thanks
Qi

> 
> 
> > -----Original Message-----
> > From: Luca Boccassi [mailto:bluca@debian.org]
> > Sent: Monday, October 8, 2018 10:14 PM
> > To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; 3chas3@gmail.com
> > Subject: Re: [dpdk-dev] [PATCH] net/e1000: do not error out if
> > rx_drop_en is set
> >
> > On Mon, 2018-10-08 at 08:43 +0000, Zhao1, Wei wrote:
> > > Hi,  Luca Boccassi
> > >
> > > > -----Original Message-----
> > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Luca Boccassi
> > > > Sent: Saturday, July 28, 2018 1:26 AM
> > > > To: dev@dpdk.org
> > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Luca Boccassi
> > > > <bluca@debian.org>; stable@dpdk.org
> > > > Subject: [dpdk-dev] [PATCH] net/e1000: do not error out if
> > > > rx_drop_en is set
> > > >
> > > > rx_drop_en is an optimization that does nothing on single-queue
> > > > devices like e1000. Do not force applications that do not care to
> > > > select per- devices
> > >
> > > And aslo, eth_em_rx_queue_setup support set up of multiple queues
> > > for EM device.
> > >
> > > > optimizations flags by returning an error, just log it and carry on.
> > >
> > > rx_drop_en is a flag to enable receive packets drop when
> > > insufficient receive descriptors exist to write the packet into system
> memory.
> > > if we delete this parameter check protection, it may be misleading
> > > some applications for this point, why does not give some requirement
> > > for proper usage of this? I do not suggest for this change.
> > > You can also refer to function eth_igb_rx_queue_setup(), igb device
> > > support rx_drop_en set, so we do not have a such parameter check.
> >
> > Hi,
> >
> > As mentioned, because given it does nothing it's not worth aborting
> > the program with an error. Logging a notice level message and carrying
> > on is sufficient.
> > We should try not make it harder than necessary for application
> developers.
> >
> > > >
> > > > Fixes: 805803445a02 ("e1000: support EM devices (also known as
> > > > e1000/e1000e)")
> > > > Cc: stable@dpdk.org
> > > >
> > > > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > > > ---
> > > >  drivers/net/e1000/em_rxtx.c | 7 ++++---
> > > >  1 file changed, 4 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/drivers/net/e1000/em_rxtx.c
> > > > b/drivers/net/e1000/em_rxtx.c index a6b3e92a6..81dc41efb 100644
> > > > --- a/drivers/net/e1000/em_rxtx.c
> > > > +++ b/drivers/net/e1000/em_rxtx.c
> > > > @@ -1416,12 +1416,13 @@ eth_em_rx_queue_setup(struct
> > rte_eth_dev
> > > > *dev,
> > > >  	}
> > > >
> > > >  	/*
> > > > -	 * EM devices don't support drop_en functionality
> > > > +	 * EM devices don't support drop_en functionality.
> > > > +	 * It's an optimization that does nothing on single-queue
> > > > devices,
> > > > +	 * so just log the issue and carry on.
> > > >  	 */
> > > >  	if (rx_conf->rx_drop_en) {
> > > > -		PMD_INIT_LOG(ERR, "drop_en functionality not
> > > > supported
> > > > by "
> > > > +		PMD_INIT_LOG(NOTICE, "drop_en functionality not
> > > > supported by "
> > > >  			     "device");
> > > > -		return -EINVAL;
> > > >  	}
> > > >
> > > >  	/* Free memory prior to re-allocation if needed. */
> > > > --
> > > > 2.18.0
> > >
> > >
> >
> > --
> > Kind regards,
> > Luca Boccassi
  

Patch

diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
index a6b3e92a6..81dc41efb 100644
--- a/drivers/net/e1000/em_rxtx.c
+++ b/drivers/net/e1000/em_rxtx.c
@@ -1416,12 +1416,13 @@  eth_em_rx_queue_setup(struct rte_eth_dev *dev,
 	}
 
 	/*
-	 * EM devices don't support drop_en functionality
+	 * EM devices don't support drop_en functionality.
+	 * It's an optimization that does nothing on single-queue devices,
+	 * so just log the issue and carry on.
 	 */
 	if (rx_conf->rx_drop_en) {
-		PMD_INIT_LOG(ERR, "drop_en functionality not supported by "
+		PMD_INIT_LOG(NOTICE, "drop_en functionality not supported by "
 			     "device");
-		return -EINVAL;
 	}
 
 	/* Free memory prior to re-allocation if needed. */