Re: [EVL] Kernel WARNING: notifier callback netevent_handler already registered
Philippe Gerum <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <87jytt34q7.fsf@2a01cb0804738000b42250ae26cae50b.ipv6.abo.wanadoo.fr> |
Hannes Diethelm <[email protected]> writes: > Am 25.04.26 um 20:50 schrieb Philippe Gerum: >> Hannes Diethelm <[email protected]> writes: >> >>> Hello >>> >>> There is a Kernel WARNING: "notifier callback netevent_handler already registered right after boot". It is repeated 5 times. >>> >>> Config: >>> Debian Trixie with xfce4 Desktop >>> libevl: r56 >>> linux-evl: v6.12.67-evl2-rebase >>> >>> I traced the issue already trough the following code: >>> net/core/net_namespace.c:355 >>> kernel/evl/net/net.c:35 >>> kernel/evl/net/ipv4/ipv4.c:41 >>> kernel/evl/net/ipv4/arp.c:323 >>> >>> However, I lack the knowledge to do a proper fix. One way would be to just check in evl_net_init_arp() if it is already >>> registered and don't do it more than once but that doesn't feel right. >> It looks like the system is instantiating multiple network >> namespaces, >> for each of which we set up an ARP front cache by calling >> evl_net_init_arp(). Bad idea to hook a system-wide handler there as >> well. Could you confirm this fix [1] works for you? >> Thanks for reporting this. >> [1] >> https://gitlab.com/Xenomai/xenomai4/linux-evl/-/commit/569beef061321c2c00d775b13ad0aec1a1d2a416 >> > > Thanks, that was fast. The WARNING is gone now. > > But now after just updating to the kernel including your fix, I have a different behavior on > incoming packages. It seams that the default when no filter is set has changed from EVL_RX_SKIP to EVL_RX_ACCEPT. > > linux-evl: v6.12.67-evl2-rebase > -After evl net -ei enp7s0, I can ping another host. > -oob-net-icmp does only receive packages when I use an eBPF filter with EVL_RX_ACCEPT > -After that, ping doesn't work any more > > linux-evl: v6.12.y-cip-evl-rebase > -After evl net -ei enp7s0, I can NOT ping another host. > -oob-net-icmp does receive packages > -If I use an eBPF filter returning EVL_RX_SKIP, I can ping again > > I am not using VLAN's. > > Was that changed on purpose? Yes, this is implemented by this commit [1]. The rationale here is that if you turn on the oob port directly on a base device, then the evl net stack may assume that the device is entirely dedicated to oob traffic, as opposed to enabling such port on some upper device based on the former (e.g. a VLAN interface). As a result, all ingress traffic received by such base device is diverted (RX_ACCEPT) to the evl net stack. [1] https://gitlab.com/Xenomai/xenomai4/linux-evl/-/commit/3026e69cee2a1de047818fa06ad8c44623461a0d -- Philippe.