netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] netconsole: Enable compile time configuration
@ 2023-07-27 16:31 Breno Leitao
  2023-07-27 16:46 ` Jakub Kicinski
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Breno Leitao @ 2023-07-27 16:31 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: leit, open list:NETWORKING DRIVERS, open list

Enable netconsole features to be set at compilation time. Create two
Kconfig options that allow users to set extended logs and release
prepending features enabled at compilation time.

Right now, the user needs to pass command line parameters to netconsole,
such as "+"/"r" to enable extended logs and version prepending features.

With these two options, the user could set the default values for the
features at compile time, and don't need to pass it in the command line
to get them enabled.

Signed-off-by: Breno Leitao <leitao@debian.org>
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 368c6f5b327e..4d0c3c532e72 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -332,6 +332,26 @@ config NETCONSOLE_DYNAMIC
 	  at runtime through a userspace interface exported using configfs.
 	  See <file:Documentation/networking/netconsole.rst> for details.

+config NETCONSOLE_EXTENDED_LOG
+	bool "Enable kernel extended message"
+	depends on NETCONSOLE
+	default n
+	help
+	  Enable extended log support for netconsole. Log messages are
+	  transmitted with extended metadata header in the following format
+	  which is the same as /dev/kmsg.
+	  See <file:Documentation/networking/netconsole.rst> for details.
+
+config NETCONSOLE_APPEND_RELEASE
+	bool "Enable kernel release version in the message"
+	depends on NETCONSOLE_EXTENDED_LOG
+	default n
+	help
+	  Enable kernel release to be prepended to each netcons message. The
+	  kernel version is prepended to the first message, so, the peer knows what
+	  kernel version is send the messages.
+	  See <file:Documentation/networking/netconsole.rst> for details.
+
 config NETPOLL
 	def_bool NETCONSOLE

diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 87f18aedd3bd..3a74f8c9cfdb 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -181,6 +181,11 @@ static struct netconsole_target *alloc_param_target(char *target_config)
 	if (!nt)
 		goto fail;

+	if (IS_ENABLED(CONFIG_NETCONSOLE_EXTENDED_LOG))
+		nt->extended = true;
+	if (IS_ENABLED(CONFIG_NETCONSOLE_APPEND_RELEASE))
+		nt->extended = true;
+
 	nt->np.name = "netconsole";
 	strscpy(nt->np.dev_name, "eth0", IFNAMSIZ);
 	nt->np.local_port = 6665;
---
 drivers/net/Kconfig      | 20 ++++++++++++++++++++
 drivers/net/netconsole.c |  5 +++++
 2 files changed, 25 insertions(+)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 368c6f5b327e..4d0c3c532e72 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -332,6 +332,26 @@ config NETCONSOLE_DYNAMIC
 	  at runtime through a userspace interface exported using configfs.
 	  See <file:Documentation/networking/netconsole.rst> for details.
 
+config NETCONSOLE_EXTENDED_LOG
+	bool "Enable kernel extended message"
+	depends on NETCONSOLE
+	default n
+	help
+	  Enable extended log support for netconsole. Log messages are
+	  transmitted with extended metadata header in the following format
+	  which is the same as /dev/kmsg.
+	  See <file:Documentation/networking/netconsole.rst> for details.
+
+config NETCONSOLE_APPEND_RELEASE
+	bool "Enable kernel release version in the message"
+	depends on NETCONSOLE_EXTENDED_LOG
+	default n
+	help
+	  Enable kernel release to be prepended to each netcons message. The
+	  kernel version is prepended to the first message, so, the peer knows what
+	  kernel version is send the messages.
+	  See <file:Documentation/networking/netconsole.rst> for details.
+
 config NETPOLL
 	def_bool NETCONSOLE
 
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 87f18aedd3bd..c84bcf97d4e4 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -181,6 +181,11 @@ static struct netconsole_target *alloc_param_target(char *target_config)
 	if (!nt)
 		goto fail;
 
+	if (IS_ENABLED(CONFIG_NETCONSOLE_EXTENDED_LOG))
+		nt->extended = true;
+	if (IS_ENABLED(CONFIG_NETCONSOLE_APPEND_RELEASE))
+		nt->release = true;
+
 	nt->np.name = "netconsole";
 	strscpy(nt->np.dev_name, "eth0", IFNAMSIZ);
 	nt->np.local_port = 6665;
-- 
2.34.1


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

* Re: [PATCH net-next] netconsole: Enable compile time configuration
  2023-07-27 16:31 [PATCH net-next] netconsole: Enable compile time configuration Breno Leitao
@ 2023-07-27 16:46 ` Jakub Kicinski
  2023-07-27 18:47 ` Benjamin Poirier
  2023-07-27 22:51 ` Randy Dunlap
  2 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2023-07-27 16:46 UTC (permalink / raw)
  To: Breno Leitao
  Cc: David S. Miller, Eric Dumazet, Paolo Abeni, leit,
	open list:NETWORKING DRIVERS, open list

On Thu, 27 Jul 2023 09:31:32 -0700 Breno Leitao wrote:
> +config NETCONSOLE_EXTENDED_LOG
> +	bool "Enable kernel extended message"
> +	depends on NETCONSOLE
> +	default n
> +	help
> +	  Enable extended log support for netconsole. Log messages are
> +	  transmitted with extended metadata header in the following format
> +	  which is the same as /dev/kmsg.
> +	  See <file:Documentation/networking/netconsole.rst> for details.
> +
> +config NETCONSOLE_APPEND_RELEASE
> +	bool "Enable kernel release version in the message"

We need to say the word "default" in a few places, to make it very
clear these are defaults.

I'll defer to others on whether this option makes sense, as I'm
probably too familiar with the problem you're solving to be impartial :S

Also the posting is pooped, the diff is listed twice.
Keep in mind the 24 grace period for netdev postings:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html#tl-dr
-- 
pw-bot: cr

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

* Re: [PATCH net-next] netconsole: Enable compile time configuration
  2023-07-27 16:31 [PATCH net-next] netconsole: Enable compile time configuration Breno Leitao
  2023-07-27 16:46 ` Jakub Kicinski
@ 2023-07-27 18:47 ` Benjamin Poirier
  2023-07-28 10:49   ` Breno Leitao
  2023-07-27 22:51 ` Randy Dunlap
  2 siblings, 1 reply; 6+ messages in thread
From: Benjamin Poirier @ 2023-07-27 18:47 UTC (permalink / raw)
  To: Breno Leitao
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, leit,
	open list:NETWORKING DRIVERS, open list

On 2023-07-27 09:31 -0700, Breno Leitao wrote:
> Enable netconsole features to be set at compilation time. Create two
> Kconfig options that allow users to set extended logs and release
> prepending features enabled at compilation time.
> 
> Right now, the user needs to pass command line parameters to netconsole,
> such as "+"/"r" to enable extended logs and version prepending features.
> 
> With these two options, the user could set the default values for the
> features at compile time, and don't need to pass it in the command line
> to get them enabled.
> 
> Signed-off-by: Breno Leitao <leitao@debian.org>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 368c6f5b327e..4d0c3c532e72 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -332,6 +332,26 @@ config NETCONSOLE_DYNAMIC
>  	  at runtime through a userspace interface exported using configfs.
>  	  See <file:Documentation/networking/netconsole.rst> for details.
> 
> +config NETCONSOLE_EXTENDED_LOG
> +	bool "Enable kernel extended message"
> +	depends on NETCONSOLE
> +	default n
> +	help
> +	  Enable extended log support for netconsole. Log messages are
> +	  transmitted with extended metadata header in the following format
> +	  which is the same as /dev/kmsg.
> +	  See <file:Documentation/networking/netconsole.rst> for details.
> +
> +config NETCONSOLE_APPEND_RELEASE
                     ^ PREPEND

> +	bool "Enable kernel release version in the message"
> +	depends on NETCONSOLE_EXTENDED_LOG
> +	default n
> +	help
> +	  Enable kernel release to be prepended to each netcons message. The
> +	  kernel version is prepended to the first message, so, the peer knows what
                                         ^ each

> +	  kernel version is send the messages.

"kernel release" is one thing and "kernel version" is another:
root@vsid:~# uname --kernel-release
6.5.0-rc2+
root@vsid:~# uname --kernel-version
#37 SMP PREEMPT_DYNAMIC Thu Jul 27 14:20:44 EDT 2023

This option relates to the kernel release so please use the correct
name consistently in the help text.

> +	  See <file:Documentation/networking/netconsole.rst> for details.
> +
>  config NETPOLL
>  	def_bool NETCONSOLE
> 
> diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> index 87f18aedd3bd..3a74f8c9cfdb 100644

[...]

Why is it needed to change the default for these parameters? Is there a
case where it's not possible to specify those values in the netconsole=
parameter?

If the default is set to on, there is no way to disable it via the
command line or module parameter, right?

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

* Re: [PATCH net-next] netconsole: Enable compile time configuration
  2023-07-27 16:31 [PATCH net-next] netconsole: Enable compile time configuration Breno Leitao
  2023-07-27 16:46 ` Jakub Kicinski
  2023-07-27 18:47 ` Benjamin Poirier
@ 2023-07-27 22:51 ` Randy Dunlap
  2023-07-28 10:50   ` Breno Leitao
  2 siblings, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2023-07-27 22:51 UTC (permalink / raw)
  To: Breno Leitao, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni
  Cc: leit, open list:NETWORKING DRIVERS, open list



On 7/27/23 09:31, Breno Leitao wrote:
> +config NETCONSOLE_APPEND_RELEASE
> +	bool "Enable kernel release version in the message"
> +	depends on NETCONSOLE_EXTENDED_LOG
> +	default n
> +	help
> +	  Enable kernel release to be prepended to each netcons message. The
> +	  kernel version is prepended to the first message, so, the peer knows what
> +	  kernel version is send the messages.

	                 is sending
or
	                 sends

> +	  See <file:Documentation/networking/netconsole.rst> for details.

-- 
~Randy

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

* Re: [PATCH net-next] netconsole: Enable compile time configuration
  2023-07-27 18:47 ` Benjamin Poirier
@ 2023-07-28 10:49   ` Breno Leitao
  0 siblings, 0 replies; 6+ messages in thread
From: Breno Leitao @ 2023-07-28 10:49 UTC (permalink / raw)
  To: Benjamin Poirier
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, leit,
	open list:NETWORKING DRIVERS, open list

On Thu, Jul 27, 2023 at 02:47:45PM -0400, Benjamin Poirier wrote:
> On 2023-07-27 09:31 -0700, Breno Leitao wrote:
> > Enable netconsole features to be set at compilation time. Create two
> > Kconfig options that allow users to set extended logs and release
> > prepending features enabled at compilation time.
> > 
> > Right now, the user needs to pass command line parameters to netconsole,
> > such as "+"/"r" to enable extended logs and version prepending features.
> > 
> > With these two options, the user could set the default values for the
> > features at compile time, and don't need to pass it in the command line
> > to get them enabled.
> > 
> > Signed-off-by: Breno Leitao <leitao@debian.org>
> > diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> > index 368c6f5b327e..4d0c3c532e72 100644
> > --- a/drivers/net/Kconfig
> > +++ b/drivers/net/Kconfig
> > @@ -332,6 +332,26 @@ config NETCONSOLE_DYNAMIC
> >  	  at runtime through a userspace interface exported using configfs.
> >  	  See <file:Documentation/networking/netconsole.rst> for details.
> > 
> > +config NETCONSOLE_EXTENDED_LOG
> > +	bool "Enable kernel extended message"
> > +	depends on NETCONSOLE
> > +	default n
> > +	help
> > +	  Enable extended log support for netconsole. Log messages are
> > +	  transmitted with extended metadata header in the following format
> > +	  which is the same as /dev/kmsg.
> > +	  See <file:Documentation/networking/netconsole.rst> for details.
> > +
> > +config NETCONSOLE_APPEND_RELEASE
>                      ^ PREPEND
> 
> > +	bool "Enable kernel release version in the message"
> > +	depends on NETCONSOLE_EXTENDED_LOG
> > +	default n
> > +	help
> > +	  Enable kernel release to be prepended to each netcons message. The
> > +	  kernel version is prepended to the first message, so, the peer knows what
>                                          ^ each
> 
> > +	  kernel version is send the messages.
> 
> "kernel release" is one thing and "kernel version" is another:
> root@vsid:~# uname --kernel-release
> 6.5.0-rc2+
> root@vsid:~# uname --kernel-version
> #37 SMP PREEMPT_DYNAMIC Thu Jul 27 14:20:44 EDT 2023
> 
> This option relates to the kernel release so please use the correct
> name consistently in the help text.

Good point. I will fix it in v2.

> > +	  See <file:Documentation/networking/netconsole.rst> for details.
> > +
> >  config NETPOLL
> >  	def_bool NETCONSOLE
> > 
> > diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> > index 87f18aedd3bd..3a74f8c9cfdb 100644
> 
> [...]
> 
> Why is it needed to change the default for these parameters? Is there a
> case where it's not possible to specify those values in the netconsole=
> parameter?
> 
> If the default is set to on, there is no way to disable it via the
> command line or module parameter, right?

This patch shouldn't be chagning the default value at all. The default
value should be =n, as it is today. Where do you see the default being
changed?

This is what the patch does, setting "default n".

    +config NETCONSOLE_EXTENDED_LOG
    +       bool "Enable kernel extended message"
    +       depends on NETCONSOLE
    +       default n

and

    +config NETCONSOLE_APPEND_RELEASE
    +       bool "Enable kernel release version in the message"
    +       depends on NETCONSOLE_EXTENDED_LOG
    +       default n


Thanks for the review.

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

* Re: [PATCH net-next] netconsole: Enable compile time configuration
  2023-07-27 22:51 ` Randy Dunlap
@ 2023-07-28 10:50   ` Breno Leitao
  0 siblings, 0 replies; 6+ messages in thread
From: Breno Leitao @ 2023-07-28 10:50 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, leit,
	open list:NETWORKING DRIVERS, open list

On Thu, Jul 27, 2023 at 03:51:41PM -0700, Randy Dunlap wrote:
> 
> 
> On 7/27/23 09:31, Breno Leitao wrote:
> > +config NETCONSOLE_APPEND_RELEASE
> > +	bool "Enable kernel release version in the message"
> > +	depends on NETCONSOLE_EXTENDED_LOG
> > +	default n
> > +	help
> > +	  Enable kernel release to be prepended to each netcons message. The
> > +	  kernel version is prepended to the first message, so, the peer knows what
> > +	  kernel version is send the messages.
> 
> 	                 is sending
> or
> 	                 sends

Thanks. I will fix on v2.

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

end of thread, other threads:[~2023-07-28 10:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-27 16:31 [PATCH net-next] netconsole: Enable compile time configuration Breno Leitao
2023-07-27 16:46 ` Jakub Kicinski
2023-07-27 18:47 ` Benjamin Poirier
2023-07-28 10:49   ` Breno Leitao
2023-07-27 22:51 ` Randy Dunlap
2023-07-28 10:50   ` Breno Leitao

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