2020-03-11 06:31:52

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH] net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()

In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.

The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
from being 'm' when NET_DEVLINK=y.

With the planned Kconfig change that relaxes the 'imply', the
combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.

Use IS_REACHABLE() to avoid the vmlinux link error for this case.

Reported-by: Stephen Rothwell <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
---

This build error was reported in linux-next.
https://lkml.org/lkml/2020/3/10/1936

If this patch is acceptable,
I'd like to get Ack from the maintainers,
and insert this patch before my Kconfig change.


include/net/drop_monitor.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/net/drop_monitor.h b/include/net/drop_monitor.h
index 2ab668461463..f68bc373544a 100644
--- a/include/net/drop_monitor.h
+++ b/include/net/drop_monitor.h
@@ -19,7 +19,7 @@ struct net_dm_hw_metadata {
struct net_device *input_dev;
};

-#if IS_ENABLED(CONFIG_NET_DROP_MONITOR)
+#if IS_REACHABLE(CONFIG_NET_DROP_MONITOR)
void net_dm_hw_report(struct sk_buff *skb,
const struct net_dm_hw_metadata *hw_metadata);
#else
--
2.17.1


2020-03-11 09:32:27

by Ido Schimmel

[permalink] [raw]
Subject: Re: [PATCH] net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()

On Wed, Mar 11, 2020 at 03:29:25PM +0900, Masahiro Yamada wrote:
> In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.
>
> The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
> from being 'm' when NET_DEVLINK=y.
>
> With the planned Kconfig change that relaxes the 'imply', the
> combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.
>
> Use IS_REACHABLE() to avoid the vmlinux link error for this case.
>
> Reported-by: Stephen Rothwell <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>

Thanks, Masahiro.

Neil, Jiri, another option (long term) is to add a raw tracepoint (not
part of ABI) in devlink and have drop monitor register its probe on it
when monitoring.

Two advantages:
1. Consistent with what drop monitor is already doing with kfree_skb()
tracepoint
2. We can remove 'imply NET_DROP_MONITOR' altogether

What do you think?

2020-03-11 10:48:41

by Neil Horman

[permalink] [raw]
Subject: Re: [PATCH] net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()

On Wed, Mar 11, 2020 at 11:31:43AM +0200, Ido Schimmel wrote:
> On Wed, Mar 11, 2020 at 03:29:25PM +0900, Masahiro Yamada wrote:
> > In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.
> >
> > The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
> > from being 'm' when NET_DEVLINK=y.
> >
> > With the planned Kconfig change that relaxes the 'imply', the
> > combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.
> >
> > Use IS_REACHABLE() to avoid the vmlinux link error for this case.
> >
> > Reported-by: Stephen Rothwell <[email protected]>
> > Signed-off-by: Masahiro Yamada <[email protected]>
>
> Thanks, Masahiro.
>
> Neil, Jiri, another option (long term) is to add a raw tracepoint (not
> part of ABI) in devlink and have drop monitor register its probe on it
> when monitoring.
>
> Two advantages:
> 1. Consistent with what drop monitor is already doing with kfree_skb()
> tracepoint
> 2. We can remove 'imply NET_DROP_MONITOR' altogether
>
> What do you think?
>
Agreed, I think I like this implementation better.
Neil

2020-03-11 11:29:13

by Ido Schimmel

[permalink] [raw]
Subject: Re: [PATCH] net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()

On Wed, Mar 11, 2020 at 06:47:56AM -0400, Neil Horman wrote:
> On Wed, Mar 11, 2020 at 11:31:43AM +0200, Ido Schimmel wrote:
> > On Wed, Mar 11, 2020 at 03:29:25PM +0900, Masahiro Yamada wrote:
> > > In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.
> > >
> > > The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
> > > from being 'm' when NET_DEVLINK=y.
> > >
> > > With the planned Kconfig change that relaxes the 'imply', the
> > > combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.
> > >
> > > Use IS_REACHABLE() to avoid the vmlinux link error for this case.
> > >
> > > Reported-by: Stephen Rothwell <[email protected]>
> > > Signed-off-by: Masahiro Yamada <[email protected]>
> >
> > Thanks, Masahiro.
> >
> > Neil, Jiri, another option (long term) is to add a raw tracepoint (not
> > part of ABI) in devlink and have drop monitor register its probe on it
> > when monitoring.
> >
> > Two advantages:
> > 1. Consistent with what drop monitor is already doing with kfree_skb()
> > tracepoint
> > 2. We can remove 'imply NET_DROP_MONITOR' altogether
> >
> > What do you think?
> >
> Agreed, I think I like this implementation better.

OK, but I don't want to block Masahiro. I think we can go with his patch
and then I'll add the raw tracepoint in the next release.

2020-03-11 17:32:47

by Neil Horman

[permalink] [raw]
Subject: Re: [PATCH] net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()

On Wed, Mar 11, 2020 at 01:28:33PM +0200, Ido Schimmel wrote:
> On Wed, Mar 11, 2020 at 06:47:56AM -0400, Neil Horman wrote:
> > On Wed, Mar 11, 2020 at 11:31:43AM +0200, Ido Schimmel wrote:
> > > On Wed, Mar 11, 2020 at 03:29:25PM +0900, Masahiro Yamada wrote:
> > > > In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.
> > > >
> > > > The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
> > > > from being 'm' when NET_DEVLINK=y.
> > > >
> > > > With the planned Kconfig change that relaxes the 'imply', the
> > > > combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.
> > > >
> > > > Use IS_REACHABLE() to avoid the vmlinux link error for this case.
> > > >
> > > > Reported-by: Stephen Rothwell <[email protected]>
> > > > Signed-off-by: Masahiro Yamada <[email protected]>
> > >
> > > Thanks, Masahiro.
> > >
> > > Neil, Jiri, another option (long term) is to add a raw tracepoint (not
> > > part of ABI) in devlink and have drop monitor register its probe on it
> > > when monitoring.
> > >
> > > Two advantages:
> > > 1. Consistent with what drop monitor is already doing with kfree_skb()
> > > tracepoint
> > > 2. We can remove 'imply NET_DROP_MONITOR' altogether
> > >
> > > What do you think?
> > >
> > Agreed, I think I like this implementation better.
>
> OK, but I don't want to block Masahiro. I think we can go with his patch
> and then I'll add the raw tracepoint in the next release.
>
Yeah, ok, I can agree with that
Acked-by: Neil Horman <[email protected]>

2020-03-11 21:28:05

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()

On Thu, Mar 12, 2020 at 2:31 AM Neil Horman <[email protected]> wrote:
>
> On Wed, Mar 11, 2020 at 01:28:33PM +0200, Ido Schimmel wrote:
> > On Wed, Mar 11, 2020 at 06:47:56AM -0400, Neil Horman wrote:
> > > On Wed, Mar 11, 2020 at 11:31:43AM +0200, Ido Schimmel wrote:
> > > > On Wed, Mar 11, 2020 at 03:29:25PM +0900, Masahiro Yamada wrote:
> > > > > In net/Kconfig, NET_DEVLINK implies NET_DROP_MONITOR.
> > > > >
> > > > > The original behavior of the 'imply' keyword prevents NET_DROP_MONITOR
> > > > > from being 'm' when NET_DEVLINK=y.
> > > > >
> > > > > With the planned Kconfig change that relaxes the 'imply', the
> > > > > combination of NET_DEVLINK=y and NET_DROP_MONITOR=m would be allowed.
> > > > >
> > > > > Use IS_REACHABLE() to avoid the vmlinux link error for this case.
> > > > >
> > > > > Reported-by: Stephen Rothwell <[email protected]>
> > > > > Signed-off-by: Masahiro Yamada <[email protected]>
> > > >
> > > > Thanks, Masahiro.
> > > >
> > > > Neil, Jiri, another option (long term) is to add a raw tracepoint (not
> > > > part of ABI) in devlink and have drop monitor register its probe on it
> > > > when monitoring.
> > > >
> > > > Two advantages:
> > > > 1. Consistent with what drop monitor is already doing with kfree_skb()
> > > > tracepoint
> > > > 2. We can remove 'imply NET_DROP_MONITOR' altogether
> > > >
> > > > What do you think?
> > > >
> > > Agreed, I think I like this implementation better.
> >
> > OK, but I don't want to block Masahiro. I think we can go with his patch
> > and then I'll add the raw tracepoint in the next release.
> >
> Yeah, ok, I can agree with that
> Acked-by: Neil Horman <[email protected]>


Thanks, I will insert this patch before the kconfig change
with your Ack.


--
Best Regards
Masahiro Yamada