In the grand tradition of releasing free software projects on my birthday
for the past few years.
And yes, I skipped version 041, call it grumpyness in my old age...
Change to the same timeout loop we use in the rest of the code. Change
some comments and names to be more descriptive.
I'm mostly finished with the overall cleanup. I will post a new patch
for the udevd-nofork experiment, which will be much smaller now.
This patch exposes the wait_for_sysfs functions to all possible users,
so we need to maintain only one list of exceptions. The last list is
hereby removed from udev.c.
Hi,
I got these when creating LVM2 snapshots:
,----
| Oct 17 04:23:09 server wait_for_sysfs[5120]: error: wait_for_sysfs needs an update to handle the device '/block/dm-6' properly, please report to <linux-hotplug-devel@lists.sourceforge.net>
| Oct 17 04:23:09 server wait_for_sysfs[5129]: error: wait_for_sysfs needs an update to handle the device '/block/dm-6' properly, please report to <linux-hotplug-devel@lists.sourceforge.net>
| Oct 17 04:23:09 server wait_for_sysfs[5131]: error: wait_for_sysfs needs an update to handle the device '/block/dm-7' properly, please report to <linux-hotplug-devel@lists.sourceforge.net>
| [...]
`----
We once implemented the devfsd feature to set the owner of a device node
to the "local" user. This was before we had the dev.d/ scripts. We discussed
a similar issue with D-BUS recently and this should be better handled depending
on the distributions way to do such a thing.
I'm for removing this here as this can be easily covered by a dev.d/
script.
Here is the patch if nobody objects :)
Here we supress the dev.d/ execution if we didn't change a network
interface's name with a rule. This should solve the issue of two
running dhclients for the same interface, cause the
/etc/dev.d/net/hotplug.dev script that fakes the hotplug event runs
with every udevstart for every interface and fakes a second identical
hotplug event on bootup.
With this patch netif interfaces are no longer stored in the udevdb.
It is not needed, cause we don't have permissions or symlinks :) and
all information is available in sysfs.
This patch also moves the dev_d execution calls out of the
udev_add/udev_remove. As with the former api-cleanup-patch we have
all processed data in one udev struct and can place the execution
calls where needed.
Here is the first patch to cleanup the internal processing of the
various stages of an udev event. It should not change any behavior,
but if your system depends on udev, please always test it before reboot :)
We pass only one generic structure around between add, remove,
namedev, db and dev_d handling and make all relevant data available
to all internal stages. All udev structures are renamed to "udev".
We replace the fake parameter by a flag in the udev structure.
We open the class device in the main binaries and not in udev_add, to
make it possible to use libsysfs for udevstart directory crawling.
The last sleep parameters are removed.
On Sat, Oct 16, 2004 at 10:32:47AM -0500, Jason Dravet wrote:
> FYI
>
> wait_for_sysfs[2986]: either wait_for_sysfs (udev 038) needs an update to
> handle the device '/class/ppp/ppp' properly (5) or the sysfs-support of
> your device's driver needs to be fixed, please report to
> <linux-hotplug-devel@lists.sourceforge.net>
>
> I am running udev 38-2 and ppp-2.4.2-6.3
Yeah, the ppp-class is missing, we only covered the net ppp-devices.
On Sat, Oct 16, 2004 at 02:48:42PM -0400, Jeff wrote:
> Kay Sievers wrote:
> >On Sat, Oct 16, 2004 at 04:40:51AM +0200, Kay Sievers wrote:
> >
> >Here is a better version. We return successful in the case, that the
> >advertised device does not appear within the timeout or goes completely
> >away while waiting for the attributes. All magic numbers should be
> >readable as a string now.
> >
> >This hopefully fixes the last vc errors.
> >
> K, first patch produced a couple of device unavailables & a slew of no
> device symlinks. Second patch-no messages at all :)
>
> Thank god, if I have to reboot again I'm going to puke.
Nice to hear that we covered all the vc errors now. I think we should
apply the same logic to the /devices device wait loops, as they may go
with a remove event too.
Here is the 3rd version of the patch :)
Here we switch to a simple stat() to recognize the file creation. This
will make it possible to wait for files, which are unreadable.
I've switched the timout back to 5 seconds cause the our /class/vc errors
seems like a bug in the vc layer not a sysfs delay.
All files in /sys/class/pcmcia_socket/pcmcia_socket0/* are unreadable
without a card inserted:
read(3, 0x9167858, 4096) = -1 ENODEV (No such device)
So we need to skip that step for now.
Here we remove all the sysfs sleep loops from udev as wait_for_sysfs
will do this for us and any other hotplug user. We still keep a small
blacklist of subsystems we don't care about but any missing entry here
will no longer lead to a spinning udev waiting for files.
Hey, we got consistent source filenames today. Let's go ahead :)
I once started this ambitiuos curses gui to edit udev rules files.
udevruler still lays dead around in the tree. I will not finish it
and it is not really useful at his state. If nobody wants to do
something for it, I'm for deleting it.
> > > > That explains the spaces. What about stuff trailing %s, if %s does not
> > > > contain spaces. I.e, in the above example, model is ST336753LC and the
> > > > resulting device file is /dev/scsi_disks/some-proceding-stuff-
> > > > ST336753LC.
> > >
> > > I expect the model value has trailing spaces.
> > >
> > > You may look with:
> > > udevinfo -a -p /block/sdX
> >
> > Yes it does, and it seems for most SCSI devices, vendor and model will
> > have trailing spaces.
>
> It all depends on the vendor and model :)
>
> > I have included a patch to udev-036 to deal with
> > this issue. It trims off trailing whitespace for all sysfs attributes.
> > It might be better to trim off leading whitespace as well.
>
> We already trim it off when matching, but we also allow matching if you
> do put the spaces in there. This patch breaks that, right?
Correct, I have a new patch that trims after the comparison, so it
should work in both cases.