Hi, I have figured it out. e8a3b2dc (Dec 18) changed the behavior for me by making containers subscribe to NETLINK_KOBJECT_UEVENT with UDEV_MONITOR_NONE. We also introduced a function udev_has_devtmpfs which makes a system call name_to_handle_at.
Our kernel doesn't support system call name_to_handle_at (fs/fhandle.c, enabled by CONFIG_FHANDLE) and due to that systemd was thinking it is running in a container. Of course CONFIG_FHANDLE was in README file, under requirements :) Thanks > -----Original Message----- > From: Zbigniew Jędrzejewski-Szmek [mailto:[email protected]] > Sent: den 13 januari 2014 14:38 > To: Umut Tezduyar Lindskog > Cc: [email protected] > Subject: Re: [systemd-devel] .device units are not showing up on git systemd > > On Mon, Jan 13, 2014 at 10:37:58AM +0100, Umut Tezduyar Lindskog wrote: > > Hi, > > > > .device units stopped showing up for me in git systemd since somewhere > around mid-december. I have noticed that udevd and even udevadm > monitor receives the kernel events but systemd itself never receives them. > > > > Further debugging, I have found out device_dispatch_io() > (src/core/device.c) is never being called. It seemed like systemd binary is > never aware of kernel events. I have proved this by: > > > > 1) strace -p 1 > > 2) udevadm monitor > > 3) echo add > /sys/devices/platform/elk/net/eth0/uevent > > 4) Looking at the output of strace, nothing is changed, it is still in > > epoll_wait. > > Process 1 attached - interrupt to quit > > clock_gettime(CLOCK_MONOTONIC, {1030, 364651245}) = 0 > > epoll_wait(4, > > 5) Looking at udevadm I can see the event being received. > > monitor will print the received events for: > > UDEV - the event which udev sends out after rule processing > > KERNEL - the kernel uevent > > > > KERNEL[1064.673596] add /devices/platform/elk/net/eth0 (net) > > UDEV [1064.983686] add /devices/platform/elk/net/eth0 (net) > > > > I have asked around in IIRC and seems like no one else is having the same > problem. Before I further debug it, I wanted to check if something else might > be stealing the epoll events from systemd or if anyone else has a suggestion. > > I'd use lsof to check that PID 1 has KOJBECT_UEVENT open, and then attach > gdb to it is stored in the right places. > > Zbyszek Thanks Zbyszek for your advice. Umut _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
