> On 16.03.2015 19:49, Natanael Copa wrote: > >> netlink reader | tee /dev/ttyX | device operation handler > > > > This looks good to me. > > > > If you want avoid that this netlink reader in your example is in memory > > at all times, then feel free to use my netlink socket activator to > > activate it. Otherwise, please ignore it. > > Your activator wouldn't be of much benefit, as the netlink reader itself > tries to stay as small as possible. So your gain may be a single page of > user space, but pay for this with an extra process descriptor in the > kernel. Not really a difference, but needs extra CPU power to fire up > the netlink reader. Not to note, that inactive memor may be swapped out > by the kernel, so your approach may be a "for resource constraint > purposes special solution". > > The netlink reader does: > > establish network socket > wait for incoming event > gather event information > write textual event message to stdout
The concept of a simple netlink reader daemon seems nice. But would seem extra to having another reader that reads this reader. The concept of whole /sys tree is being re-done, even if its just not visible(memory). I could add/suggest few changes. Please consider concept/flow below as theoretical. Netlink listener (nlplugd) + config file(simple by design, but extend-able) configFile example (/etc/nlplugd.conf) <keyword> <handler> eg. <handler>= mdev, modprobe eg. <keyword>= ALL(reserved), modalias default behaviour for empty config file is ALL for mdev except modalias modalias for modprobe A nlplugd parses events and outputs to /sys/partials tree format (1) /sys/partials/<handler>/<sequence>/eventSymlinkToActualDeviceLink tree format (2)(alternative) /sys/partials/<handler>/<sequence>/someSimpleTreeRepresentation (try not to re-invent /sys) B nlplugd check for running <handler> nlplugd re-nice/suspends if <handler> is running (avoid race condition) not sure if this is possible nlplugd outputs to /sys/partials/actors/<handler> (value is numerical, increments) nlplugd un-suspends <handler> C nlplugd activates <handler> if not running D nlplugd continues with A+B+C E New "mdev" option for partials (mdev -p) this is similar to mdev -s, but now it parses /sys/partials/<handler>/ , since it just follows the symlink, there might not be need for lot of extra code here. E2 It decrements /sys/partials/actors/<handler> number It follows /sys/partials/<handler>/<sequence> to activate devices It removes /sys/partials/<handler>/<sequence> node Before quiting checks /sys/partials/actors/<handler> number, if greater > 0, rescan /sys/partials/<handler>/ (repeat E2) F New "modprobe" option for partials (modprobe -p) (have not thought on it, yet, but similar to E2 possible) Note: I am assuming any write to /sys/partials/actors/<handler> is done by write lock. -- Regards. V.Krishn _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox