Re: [EVL] Kernel WARNING: notifier callback netevent_handler already registered
Jan Kiszka <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
On 16.05.26 10:48, Hannes Diethelm wrote: > Am 27.04.26 um 11:18 schrieb Florian Bezdeka: >> On Sun, 2026-04-26 at 23:32 +0200, Hannes Diethelm wrote: >>> Am 26.04.26 um 21:24 schrieb Philippe Gerum: >>>> 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 >>>> >>> >>> This makes sense. It took me some time to get evl reading packages by >>> activating an eBPF filter and it's mostly save to assume that you don't >>> have mixed traffic on an real time network interface. With this change, >>> a filter is not needed any more. >>> >>> A bit off topic: >>> >>> Is there anything like rtping for evl? I have seen oob-net-icmp.c but >>> this is answering requests. >>> >>> In Xenomai3, there is a debian package configuration. Any interest in >>> one for libevl? I have one working but it's still very basic. If it's >>> presentable, I can send a patch. >> >> There is a debianization for x4 in xenomai-images already. See [1]. >> Can't tell why it hasn't been upstreamed yet. Maybe Tobias or Philippe >> can comment on that. >> >> [1] https://gitlab.com/Xenomai/xenomai-images/-/tree/master/recipes- >> xenomai/libevl/files/debian > > Thanks for the hint. This debianization is also basic, looks like it is > only built for > CI purpose. But it helps to improve my version. > > There are a few things missing: > - Build dependency's Which one? We are building the package in a clean sbuild env, so missing build dependencies should have been revealed. Note that Build-Depends is templated so that we could adjust it to different libevl versions (not needed right now, though). > - Optional: evl group + udev rules to allow non-root usage > - Probably much more for being a install & use debian package > Always open for patches to improve things. We might also move debianization to libevl (like done for Xenomai 3) if that brings more value to users. Jan -- Siemens AG, Foundational Technologies Linux Expert Center