Message ID | 1521732138-10688-1-git-send-email-sakib@darkstar.site |
---|---|
State | New |
Headers | show |
Series | [LEDE-DEV,V1,RFC,procd] udevtrigger: trigger devices w/o dev sysfs entry | expand |
On 22/03/18 16:22, Sergiy Kibrik wrote: > A lot of devices aren't represented via major/minor numbers > and thus don't have dev entry in their sysfs directory, like > network devices, USB, power supplies etc. > It looks to be the rigth thing to trigger them as well. > > Anyway, it's up to the hotplug daemon to decide what to do with devices, > it needs full vision of what's present in the system. > > Signed-off-by: Sergiy Kibrik <sakib@darkstar.site> Hi, sorry for the late reply. i just ran this patch on a router and it slows boot down by ~1sec due to having to process a huge pile of extra events. --- before --- [ 5.124584] random: procd: uninitialized urandom read (4 bytes read) Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 7.489347] procd: - early - --- after --- [ 5.128390] random: procd: uninitialized urandom read (4 bytes read) Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 8.345346] procd: - early - are you trying to grab events for a specific device type ? maybe we can narrow this down a bit more and not process all events during coldplug. John > --- > plug/udevtrigger.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/plug/udevtrigger.c b/plug/udevtrigger.c > index f87a95e..d6c4c4c 100644 > --- a/plug/udevtrigger.c > +++ b/plug/udevtrigger.c > @@ -161,9 +161,8 @@ static int device_list_insert(const char *path) > > dbg("add '%s'" , path); > > - /* we only have a device, if we have a dev and an uevent file */ > - if (!device_has_attribute(path, "/dev", S_IRUSR) || > - !device_has_attribute(path, "/uevent", S_IWUSR)) > + /* we only have a device, if we have an uevent file */ > + if (!device_has_attribute(path, "/uevent", S_IWUSR)) > return -1; > > strlcpy(devpath, &path[4], sizeof(devpath));
hi John, On 5/5/18 8:48 AM, John Crispin wrote: > > > On 22/03/18 16:22, Sergiy Kibrik wrote: >> A lot of devices aren't represented via major/minor numbers >> and thus don't have dev entry in their sysfs directory, like >> network devices, USB, power supplies etc. >> It looks to be the rigth thing to trigger them as well. >> >> Anyway, it's up to the hotplug daemon to decide what to do with devices, >> it needs full vision of what's present in the system. >> >> Signed-off-by: Sergiy Kibrik <sakib@darkstar.site> > > Hi, > sorry for the late reply. i just ran this patch on a router and it slows > boot down by ~1sec due to having to process a huge pile of extra events. > > --- before --- > [ 5.124584] random: procd: uninitialized urandom read (4 bytes read) > Press the [f] key and hit [enter] to enter failsafe mode > Press the [1], [2], [3] or [4] key and hit [enter] to select the debug > level > [ 7.489347] procd: - early - > > --- after --- > [ 5.128390] random: procd: uninitialized urandom read (4 bytes read) > Press the [f] key and hit [enter] to enter failsafe mode > Press the [1], [2], [3] or [4] key and hit [enter] to select the debug > level > [ 8.345346] procd: - early - > > are you trying to grab events for a specific device type ? maybe we can > narrow this down a bit more and not process all events during coldplug. > I'm detecting a hotplug (or disconnect) of USB OTG power supply. Device classes which aren't represented by dev entry seem to be left w/o a sensible way to handle events from them... -- regards, Sergiy
diff --git a/plug/udevtrigger.c b/plug/udevtrigger.c index f87a95e..d6c4c4c 100644 --- a/plug/udevtrigger.c +++ b/plug/udevtrigger.c @@ -161,9 +161,8 @@ static int device_list_insert(const char *path) dbg("add '%s'" , path); - /* we only have a device, if we have a dev and an uevent file */ - if (!device_has_attribute(path, "/dev", S_IRUSR) || - !device_has_attribute(path, "/uevent", S_IWUSR)) + /* we only have a device, if we have an uevent file */ + if (!device_has_attribute(path, "/uevent", S_IWUSR)) return -1; strlcpy(devpath, &path[4], sizeof(devpath));
A lot of devices aren't represented via major/minor numbers and thus don't have dev entry in their sysfs directory, like network devices, USB, power supplies etc. It looks to be the rigth thing to trigger them as well. Anyway, it's up to the hotplug daemon to decide what to do with devices, it needs full vision of what's present in the system. Signed-off-by: Sergiy Kibrik <sakib@darkstar.site> --- plug/udevtrigger.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)