[dpdk-dev] net/i40e: disable init and driver logs by default

Message ID F35DEAC7BCE34641BA9FAC6BCA4A12E71AA54762@SHSMSX103.ccr.corp.intel.com (mailing list archive)
State Not Applicable, archived
Headers

Checks

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

Commit Message

Zhang, Helin April 6, 2017, 2:31 p.m. UTC
  -----Original Message-----
From: Olivier Matz [mailto:olivier.matz@6wind.com] 
Sent: Thursday, April 6, 2017 10:17 PM
To: dev@dpdk.org
Cc: Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
Subject: [PATCH] net/i40e: disable init and driver logs by default

Since "net/i40e: use dynamic log type for control logs", the i40e driver is more verbose by default, which could result in testpmd being flooded by log messages in some conditions:

  Checking link statuses...
  i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
  i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
  i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
  i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
  Port 0 Link Up - speed 40000 Mbps - full-duplex
  Port 1 Link Up - speed 40000 Mbps - full-duplex
  Done
  testpmd> i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
  i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
  i40e_dev_handle_aq_msg(): Request 4097 is not supported yet

Fix this by disabling the dynamic logs by default. It is still possible to enable them at runtime.

Fixes: c143e5a3d9e1 ("net/i40e: use dynamic log type for control logs")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Bruce Richardson April 6, 2017, 2:36 p.m. UTC | #1
On Thu, Apr 06, 2017 at 03:31:23PM +0100, Zhang, Helin wrote:
> 
> 
> -----Original Message-----
> From: Olivier Matz [mailto:olivier.matz@6wind.com] 
> Sent: Thursday, April 6, 2017 10:17 PM
> To: dev@dpdk.org
> Cc: Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: [PATCH] net/i40e: disable init and driver logs by default
> 
> Since "net/i40e: use dynamic log type for control logs", the i40e driver is more verbose by default, which could result in testpmd being flooded by log messages in some conditions:
> 
>   Checking link statuses...
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   Port 0 Link Up - speed 40000 Mbps - full-duplex
>   Port 1 Link Up - speed 40000 Mbps - full-duplex
>   Done
>   testpmd> i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> 
> Fix this by disabling the dynamic logs by default. It is still possible to enable them at runtime.
> 
> Fixes: c143e5a3d9e1 ("net/i40e: use dynamic log type for control logs")
> 
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> Acked-by: Helin Zhang <helin.zhang@intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index cb8bf2b49..86f5669f0 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -12456,8 +12456,8 @@ i40e_init_log(void)  {
>  	i40e_logtype_init = rte_log_register("pmd.i40e.init");
>  	if (i40e_logtype_init >= 0)
> -		rte_log_set_level(i40e_logtype_init, RTE_LOG_NOTICE);
> +		rte_log_set_level(i40e_logtype_init, RTE_LOG_EMERG);
>  	i40e_logtype_driver = rte_log_register("pmd.i40e.driver");
>  	if (i40e_logtype_driver >= 0)
> -		rte_log_set_level(i40e_logtype_driver, RTE_LOG_NOTICE);
> +		rte_log_set_level(i40e_logtype_driver, RTE_LOG_EMERG);
>  }
> --

Hi Helin, 

Is this the correct fix? IMHO, if this is a problem, then we should
surely not be hiding and ignoring the error. If it's not a problem, then
the log level should be reduced to a lower level, e.g. INFO or NOTICE.

Alternatively, this code could be modified to only print an error once
for each unsupported request type.

Ideally both solutions should be used, I think. I'm not sure I like
setting the default log level to just show EMERG messages.

Regards,
/Bruce
  
Thomas Monjalon April 6, 2017, 2:39 p.m. UTC | #2
Hi Helin,

Thanks for acknowledging.

This mail to explain how important it is to configure his mailer.
You need to quote the original mail so we can quickly find what
you have replied.
It is also a problem for patchwork as it creates a new entry:
	http://dpdk.org/dev/patchwork/patch/23300/
because it thinks it is a new patch.
So your ack is not registered in the original patch entry:
	http://dpdk.org/dev/patchwork/patch/23298/

Please share this explanation, thanks


2017-04-06 14:31, Zhang, Helin:
> 
> -----Original Message-----
> From: Olivier Matz [mailto:olivier.matz@6wind.com] 
> Sent: Thursday, April 6, 2017 10:17 PM
> To: dev@dpdk.org
> Cc: Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: [PATCH] net/i40e: disable init and driver logs by default
> 
> Since "net/i40e: use dynamic log type for control logs", the i40e driver is more verbose by default, which could result in testpmd being flooded by log messages in some conditions:
> 
>   Checking link statuses...
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
>   Port 0 Link Up - speed 40000 Mbps - full-duplex
>   Port 1 Link Up - speed 40000 Mbps - full-duplex
>   Done
>   testpmd> i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
>   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> 
> Fix this by disabling the dynamic logs by default. It is still possible to enable them at runtime.
> 
> Fixes: c143e5a3d9e1 ("net/i40e: use dynamic log type for control logs")
> 
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> Acked-by: Helin Zhang <helin.zhang@intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index cb8bf2b49..86f5669f0 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -12456,8 +12456,8 @@ i40e_init_log(void)  {
>  	i40e_logtype_init = rte_log_register("pmd.i40e.init");
>  	if (i40e_logtype_init >= 0)
> -		rte_log_set_level(i40e_logtype_init, RTE_LOG_NOTICE);
> +		rte_log_set_level(i40e_logtype_init, RTE_LOG_EMERG);
>  	i40e_logtype_driver = rte_log_register("pmd.i40e.driver");
>  	if (i40e_logtype_driver >= 0)
> -		rte_log_set_level(i40e_logtype_driver, RTE_LOG_NOTICE);
> +		rte_log_set_level(i40e_logtype_driver, RTE_LOG_EMERG);
>  }
> --
> 2.11.0
>
  
Olivier Matz April 6, 2017, 3:16 p.m. UTC | #3
On Thu, 6 Apr 2017 15:36:43 +0100, Bruce Richardson <bruce.richardson@intel.com> wrote:
> On Thu, Apr 06, 2017 at 03:31:23PM +0100, Zhang, Helin wrote:
> > 
> > 
> > -----Original Message-----
> > From: Olivier Matz [mailto:olivier.matz@6wind.com] 
> > Sent: Thursday, April 6, 2017 10:17 PM
> > To: dev@dpdk.org
> > Cc: Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
> > Subject: [PATCH] net/i40e: disable init and driver logs by default
> > 
> > Since "net/i40e: use dynamic log type for control logs", the i40e driver is more verbose by default, which could result in testpmd being flooded by log messages in some conditions:
> > 
> >   Checking link statuses...
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   Port 0 Link Up - speed 40000 Mbps - full-duplex
> >   Port 1 Link Up - speed 40000 Mbps - full-duplex
> >   Done  
> >   testpmd> i40e_dev_handle_aq_msg(): Request 4097 is not supported yet  
> >   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> > 
> > Fix this by disabling the dynamic logs by default. It is still possible to enable them at runtime.
> > 
> > Fixes: c143e5a3d9e1 ("net/i40e: use dynamic log type for control logs")
> > 
> > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> > Acked-by: Helin Zhang <helin.zhang@intel.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index cb8bf2b49..86f5669f0 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -12456,8 +12456,8 @@ i40e_init_log(void)  {
> >  	i40e_logtype_init = rte_log_register("pmd.i40e.init");
> >  	if (i40e_logtype_init >= 0)
> > -		rte_log_set_level(i40e_logtype_init, RTE_LOG_NOTICE);
> > +		rte_log_set_level(i40e_logtype_init, RTE_LOG_EMERG);
> >  	i40e_logtype_driver = rte_log_register("pmd.i40e.driver");
> >  	if (i40e_logtype_driver >= 0)
> > -		rte_log_set_level(i40e_logtype_driver, RTE_LOG_NOTICE);
> > +		rte_log_set_level(i40e_logtype_driver, RTE_LOG_EMERG);
> >  }
> > --  
> 
> Hi Helin, 
> 
> Is this the correct fix? IMHO, if this is a problem, then we should
> surely not be hiding and ignoring the error. If it's not a problem, then
> the log level should be reduced to a lower level, e.g. INFO or NOTICE.
> 
> Alternatively, this code could be modified to only print an error once
> for each unsupported request type.
> 
> Ideally both solutions should be used, I think. I'm not sure I like
> setting the default log level to just show EMERG messages.

Yes, now that these logs are not stripped at compilation, we should
do an effort to have the proper default log value (notice, warning,
error?), and have the proper log level on each log, depending on its
criticality and maybe its frequency (maybe we'll want to rate limit
the logs in the future).

This is a more global discussion, which is not especially related to
i40e (the only part of code that currently use dynamic logs).

Olivier
  
Zhang, Helin April 7, 2017, 1:56 a.m. UTC | #4
> -----Original Message-----
> From: Olivier MATZ [mailto:olivier.matz@6wind.com]
> Sent: Thursday, April 6, 2017 11:17 PM
> To: Richardson, Bruce
> Cc: Zhang, Helin; dev@dpdk.org; Wu, Jingjing; Yigit, Ferruh
> Subject: Re: [PATCH] net/i40e: disable init and driver logs by default
> 
> On Thu, 6 Apr 2017 15:36:43 +0100, Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> > On Thu, Apr 06, 2017 at 03:31:23PM +0100, Zhang, Helin wrote:
> > >
> > >
> > > -----Original Message-----
> > > From: Olivier Matz [mailto:olivier.matz@6wind.com]
> > > Sent: Thursday, April 6, 2017 10:17 PM
> > > To: dev@dpdk.org
> > > Cc: Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing
> > > <jingjing.wu@intel.com>; Richardson, Bruce
> > > <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
> > > Subject: [PATCH] net/i40e: disable init and driver logs by default
> > >
> > > Since "net/i40e: use dynamic log type for control logs", the i40e driver is
> more verbose by default, which could result in testpmd being flooded by log
> messages in some conditions:
> > >
> > >   Checking link statuses...
> > >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> > >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> > >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> > >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> > >   Port 0 Link Up - speed 40000 Mbps - full-duplex
> > >   Port 1 Link Up - speed 40000 Mbps - full-duplex
> > >   Done
> > >   testpmd> i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> > >   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> > >   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> > >
> > > Fix this by disabling the dynamic logs by default. It is still possible to enable
> them at runtime.
> > >
> > > Fixes: c143e5a3d9e1 ("net/i40e: use dynamic log type for control
> > > logs")
> > >
> > > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> > > Acked-by: Helin Zhang <helin.zhang@intel.com>
> > > ---
> > >  drivers/net/i40e/i40e_ethdev.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > > b/drivers/net/i40e/i40e_ethdev.c index cb8bf2b49..86f5669f0 100644
> > > --- a/drivers/net/i40e/i40e_ethdev.c
> > > +++ b/drivers/net/i40e/i40e_ethdev.c
> > > @@ -12456,8 +12456,8 @@ i40e_init_log(void)  {
> > >  	i40e_logtype_init = rte_log_register("pmd.i40e.init");
> > >  	if (i40e_logtype_init >= 0)
> > > -		rte_log_set_level(i40e_logtype_init, RTE_LOG_NOTICE);
> > > +		rte_log_set_level(i40e_logtype_init, RTE_LOG_EMERG);
> > >  	i40e_logtype_driver = rte_log_register("pmd.i40e.driver");
> > >  	if (i40e_logtype_driver >= 0)
> > > -		rte_log_set_level(i40e_logtype_driver, RTE_LOG_NOTICE);
> > > +		rte_log_set_level(i40e_logtype_driver, RTE_LOG_EMERG);
> > >  }
> > > --
> >
> > Hi Helin,
> >
> > Is this the correct fix? IMHO, if this is a problem, then we should
> > surely not be hiding and ignoring the error. If it's not a problem,
> > then the log level should be reduced to a lower level, e.g. INFO or NOTICE.
> >
> > Alternatively, this code could be modified to only print an error once
> > for each unsupported request type.
> >
> > Ideally both solutions should be used, I think. I'm not sure I like
> > setting the default log level to just show EMERG messages.
> 
> Yes, now that these logs are not stripped at compilation, we should do an
> effort to have the proper default log value (notice, warning, error?), and have
> the proper log level on each log, depending on its criticality and maybe its
> frequency (maybe we'll want to rate limit the logs in the future).
> 
> This is a more global discussion, which is not especially related to i40e (the only
> part of code that currently use dynamic logs).
> 
> Olivier
The issue is being analyzed now, definitely we will track that with a conclusion
of a fix or not an issue. So it will not be missed. Thanks for your reminder!
For the patch itself, I am OK with that changes.

Regards,
Helin
  
Zhang, Helin April 7, 2017, 2:03 a.m. UTC | #5
> -----Original Message-----
> From: Richardson, Bruce
> Sent: Thursday, April 6, 2017 10:37 PM
> To: Zhang, Helin
> Cc: Olivier Matz; dev@dpdk.org; Wu, Jingjing; Yigit, Ferruh
> Subject: Re: [PATCH] net/i40e: disable init and driver logs by default
> 
> On Thu, Apr 06, 2017 at 03:31:23PM +0100, Zhang, Helin wrote:
> >
> >
> > -----Original Message-----
> > From: Olivier Matz [mailto:olivier.matz@6wind.com]
> > Sent: Thursday, April 6, 2017 10:17 PM
> > To: dev@dpdk.org
> > Cc: Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing
> > <jingjing.wu@intel.com>; Richardson, Bruce
> > <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
> > Subject: [PATCH] net/i40e: disable init and driver logs by default
> >
> > Since "net/i40e: use dynamic log type for control logs", the i40e driver is
> more verbose by default, which could result in testpmd being flooded by log
> messages in some conditions:
> >
> >   Checking link statuses...
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 2561 is not supported yet
> >   Port 0 Link Up - speed 40000 Mbps - full-duplex
> >   Port 1 Link Up - speed 40000 Mbps - full-duplex
> >   Done
> >   testpmd> i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> >   i40e_dev_handle_aq_msg(): Request 4097 is not supported yet
> >
> > Fix this by disabling the dynamic logs by default. It is still possible to enable
> them at runtime.
> >
> > Fixes: c143e5a3d9e1 ("net/i40e: use dynamic log type for control
> > logs")
> >
> > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> > Acked-by: Helin Zhang <helin.zhang@intel.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > b/drivers/net/i40e/i40e_ethdev.c index cb8bf2b49..86f5669f0 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -12456,8 +12456,8 @@ i40e_init_log(void)  {
> >  	i40e_logtype_init = rte_log_register("pmd.i40e.init");
> >  	if (i40e_logtype_init >= 0)
> > -		rte_log_set_level(i40e_logtype_init, RTE_LOG_NOTICE);
> > +		rte_log_set_level(i40e_logtype_init, RTE_LOG_EMERG);
> >  	i40e_logtype_driver = rte_log_register("pmd.i40e.driver");
> >  	if (i40e_logtype_driver >= 0)
> > -		rte_log_set_level(i40e_logtype_driver, RTE_LOG_NOTICE);
> > +		rte_log_set_level(i40e_logtype_driver, RTE_LOG_EMERG);
> >  }
> > --
> 
> Hi Helin,
> 
> Is this the correct fix? IMHO, if this is a problem, then we should surely not be
> hiding and ignoring the error. If it's not a problem, then the log level should be
> reduced to a lower level, e.g. INFO or NOTICE.
> 
> Alternatively, this code could be modified to only print an error once for each
> unsupported request type.
> 
> Ideally both solutions should be used, I think. I'm not sure I like setting the
> default log level to just show EMERG messages.
> 
> Regards,
> /Bruce
Bruce, this is not a fix for the issue, which is under investigation by developers now.

For the by default log level, any guideline for that?
I was OK with that changes, but not sure if there is any better choices.

Regards,
Helin
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index cb8bf2b49..86f5669f0 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -12456,8 +12456,8 @@  i40e_init_log(void)  {
 	i40e_logtype_init = rte_log_register("pmd.i40e.init");
 	if (i40e_logtype_init >= 0)
-		rte_log_set_level(i40e_logtype_init, RTE_LOG_NOTICE);
+		rte_log_set_level(i40e_logtype_init, RTE_LOG_EMERG);
 	i40e_logtype_driver = rte_log_register("pmd.i40e.driver");
 	if (i40e_logtype_driver >= 0)
-		rte_log_set_level(i40e_logtype_driver, RTE_LOG_NOTICE);
+		rte_log_set_level(i40e_logtype_driver, RTE_LOG_EMERG);
 }
--
2.11.0