[PATCH] configs/debug: add NET debug config

Matthieu Baerts (NGI0) posted 1 patch 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20240212-kconfig-debug-enable-net-v1-1-fb026de8174c@kernel.org
kernel/configs/debug.config | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH] configs/debug: add NET debug config
Posted by Matthieu Baerts (NGI0) 8 months ago
The debug.config file is really great to easily enable a bunch of
general debugging features on a CI-like setup. But it would be great to
also include core networking debugging config.

A few CI's validating features from the Net tree also enable a few other
debugging options on top of debug.config. A small selection is quite
generic for the whole net tree. They validate some assumptions in
different parts of the core net tree. As suggested by Jakub Kicinski in
[1], having them added to this debug.config file would help other CIs
using network features to find bugs in this area.

Note that the two REFCNT configs also select REF_TRACKER, which doesn't
seem to be an issue.

Link: https://lore.kernel.org/netdev/20240202093148.33bd2b14@kernel.org/T/ [1]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Notes:
  - It looks like this debug.config doesn't have a specific maintainer.
    If this patch is not rejected, I don't know if this modification can
    go through the net tree, or if it should be handled by Andrew.
    Probably the latter? I didn't add [net-next] in the subject for this
    reason.
---
 kernel/configs/debug.config | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/kernel/configs/debug.config b/kernel/configs/debug.config
index 4722b998a324..509ee703de15 100644
--- a/kernel/configs/debug.config
+++ b/kernel/configs/debug.config
@@ -40,6 +40,12 @@ CONFIG_UBSAN_ENUM=y
 CONFIG_UBSAN_SHIFT=y
 CONFIG_UBSAN_UNREACHABLE=y
 #
+# Networking Debugging
+#
+CONFIG_NET_DEV_REFCNT_TRACKER=y
+CONFIG_NET_NS_REFCNT_TRACKER=y
+CONFIG_DEBUG_NET=y
+#
 # Memory Debugging
 #
 # CONFIG_DEBUG_PAGEALLOC is not set

---
base-commit: 841c35169323cd833294798e58b9bf63fa4fa1de
change-id: 20240212-kconfig-debug-enable-net-c2dc61002252

Best regards,
-- 
Matthieu Baerts (NGI0) <matttbe@kernel.org>
Re: [PATCH] configs/debug: add NET debug config
Posted by Kees Cook 8 months ago
On Mon, Feb 12, 2024 at 11:47:14AM +0100, Matthieu Baerts (NGI0) wrote:
> The debug.config file is really great to easily enable a bunch of
> general debugging features on a CI-like setup. But it would be great to
> also include core networking debugging config.
> 
> A few CI's validating features from the Net tree also enable a few other
> debugging options on top of debug.config. A small selection is quite
> generic for the whole net tree. They validate some assumptions in
> different parts of the core net tree. As suggested by Jakub Kicinski in
> [1], having them added to this debug.config file would help other CIs
> using network features to find bugs in this area.
> 
> Note that the two REFCNT configs also select REF_TRACKER, which doesn't
> seem to be an issue.
> 
> Link: https://lore.kernel.org/netdev/20240202093148.33bd2b14@kernel.org/T/ [1]
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> ---
> Notes:
>   - It looks like this debug.config doesn't have a specific maintainer.
>     If this patch is not rejected, I don't know if this modification can
>     go through the net tree, or if it should be handled by Andrew.
>     Probably the latter? I didn't add [net-next] in the subject for this
>     reason.

Adding these seem reasonable. I touched debug.config last, so I can take
it via the kernel hardening tree if netdev doesn't want to take it.

Reviewed-by: Kees Cook <keescook@chromium.org>

-Kees

> ---
>  kernel/configs/debug.config | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/kernel/configs/debug.config b/kernel/configs/debug.config
> index 4722b998a324..509ee703de15 100644
> --- a/kernel/configs/debug.config
> +++ b/kernel/configs/debug.config
> @@ -40,6 +40,12 @@ CONFIG_UBSAN_ENUM=y
>  CONFIG_UBSAN_SHIFT=y
>  CONFIG_UBSAN_UNREACHABLE=y
>  #
> +# Networking Debugging
> +#
> +CONFIG_NET_DEV_REFCNT_TRACKER=y
> +CONFIG_NET_NS_REFCNT_TRACKER=y
> +CONFIG_DEBUG_NET=y
> +#
>  # Memory Debugging
>  #
>  # CONFIG_DEBUG_PAGEALLOC is not set
> 
> ---
> base-commit: 841c35169323cd833294798e58b9bf63fa4fa1de
> change-id: 20240212-kconfig-debug-enable-net-c2dc61002252
> 
> Best regards,
> -- 
> Matthieu Baerts (NGI0) <matttbe@kernel.org>
> 

-- 
Kees Cook
Re: [PATCH] configs/debug: add NET debug config
Posted by Jakub Kicinski 8 months ago
On Mon, 12 Feb 2024 10:39:55 -0800 Kees Cook wrote:
> > Notes:
> >   - It looks like this debug.config doesn't have a specific maintainer.
> >     If this patch is not rejected, I don't know if this modification can
> >     go through the net tree, or if it should be handled by Andrew.
> >     Probably the latter? I didn't add [net-next] in the subject for this
> >     reason.  
> 
> Adding these seem reasonable. I touched debug.config last, so I can take
> it via the kernel hardening tree if netdev doesn't want to take it.

I'd prefer to have it in net-next sooner rather than later, because
when our CI hits an issue we can tell people:

	make defconfig debug.config
	make

otherwise I have to explain what options to twiddle with. And the
refcount options do catch bugs, I had to do this exact the explaining
last Friday :(

So I'd offer these three options:
 - we put it on a shared branch and both pull in
 - you send to Linus within a week and we'll get it soon that way
 - we take it to net-next directly

What's your preference?
Re: [PATCH] configs/debug: add NET debug config
Posted by Kees Cook 8 months ago

On February 12, 2024 5:02:53 PM PST, Jakub Kicinski <kuba@kernel.org> wrote:
>On Mon, 12 Feb 2024 10:39:55 -0800 Kees Cook wrote:
>> > Notes:
>> >   - It looks like this debug.config doesn't have a specific maintainer.
>> >     If this patch is not rejected, I don't know if this modification can
>> >     go through the net tree, or if it should be handled by Andrew.
>> >     Probably the latter? I didn't add [net-next] in the subject for this
>> >     reason.  
>> 
>> Adding these seem reasonable. I touched debug.config last, so I can take
>> it via the kernel hardening tree if netdev doesn't want to take it.
>
>I'd prefer to have it in net-next sooner rather than later, because
>when our CI hits an issue we can tell people:
>
>	make defconfig debug.config
>	make
>
>otherwise I have to explain what options to twiddle with. And the
>refcount options do catch bugs, I had to do this exact the explaining
>last Friday :(
>
>So I'd offer these three options:
> - we put it on a shared branch and both pull in
> - you send to Linus within a week and we'll get it soon that way
> - we take it to net-next directly
>
>What's your preference?

Totally fine in net-next! Go for it. :)

-Kees


-- 
Kees Cook
Re: [PATCH] configs/debug: add NET debug config
Posted by Andrew Morton 8 months ago
On Mon, 12 Feb 2024 17:02:53 -0800 Jakub Kicinski <kuba@kernel.org> wrote:

> On Mon, 12 Feb 2024 10:39:55 -0800 Kees Cook wrote:
> > > Notes:
> > >   - It looks like this debug.config doesn't have a specific maintainer.
> > >     If this patch is not rejected, I don't know if this modification can
> > >     go through the net tree, or if it should be handled by Andrew.
> > >     Probably the latter? I didn't add [net-next] in the subject for this
> > >     reason.  
> > 
> > Adding these seem reasonable. I touched debug.config last, so I can take
> > it via the kernel hardening tree if netdev doesn't want to take it.
> 
> I'd prefer to have it in net-next sooner rather than later, because
> when our CI hits an issue we can tell people:
> 
> 	make defconfig debug.config
> 	make
> 
> otherwise I have to explain what options to twiddle with. And the
> refcount options do catch bugs, I had to do this exact the explaining
> last Friday :(
> 
> So I'd offer these three options:
>  - we put it on a shared branch and both pull in
>  - you send to Linus within a week and we'll get it soon that way
>  - we take it to net-next directly
> 
> What's your preference?

It's a net patch.  Put it in the net tree.