On Thu, 12 Mar 2015 13:10:20 +0100 Denys Vlasenko <[email protected]> wrote:
> On Wed, Mar 11, 2015 at 5:10 PM, Harald Becker <[email protected]> wrote: > > On 11.03.2015 16:34, Laurent Bercot wrote: > >> > >> On 11/03/2015 14:02, Denys Vlasenko wrote: > >>> > >>> But that nldev process will exist for all time, right? That's not > >>> elegant. > >>> Ideally, this respawning logic should be in the kernel. > >> > > ... > >> > >> Needing daemons to answer notifications from userspace processes > >> or the kernel is the Unix way. It's not Hurd's, it's not Plan 9's > >> (AFAIK), but it's what we have, and it's not even that ugly. The > >> listening and spawning logic will have to be somewhere anyway, so > >> why not userspace ? Userspace memory is cheaper (because it can > >> be swapped), userspace processes are safer, and processes are not > >> a scarce resource. > > > > And what is wrong with a long lived daemon? > > I find it suboptimal to have, say, a hotplug daemon lingering > in the system five hours after the last hotplug event happened. What do you gain by moving that logic into the kernel? My point is that a long lived daemon that stays there 5 hours after the last hotplug event is currently unavoidable unless you are ok with one fork/exec for every event. Thus, this long lived daemon should be as small and simple as possible. The config parsing logic and actual handling code should be done in different process. Crazy idea: have a netlink listener/handler that is installed in /proc/sys/kernel/hotplug. On startup it will set up a netlink listener and remove itself from /proc/sys/kernel/hotplug so all subsequent events comes via netlink. Read events from netlink and handle those. On timeout (no events for N seconds), restore itself in /proc/sys/kernel/hotplug and exit. I don't think this is possible to implement without race conditions so I still believe a minimal forever running netlink listening daemon is the way to go. -nc _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
