Age | Commit message (Collapse) | Author |
|
Instead of using multiple recursive Makefile.am files, use a single
Makefile.am that sets and builds all the basic suite of libraries and
binaries for udev. This reduces the number of files in the source tree, and
also reduces drastically the build time when using parallel-make.
With this setup, all the compile steps will be executed in parallel, and
just the linking stage will be (partially) serialised on the libraries
creation.
|
|
If by-path / by-id links don't quite do what you want, this is a nice
clean way to extend the behaviour. Real example:
SYMLINK=="serial/by-id/usb-Novatel_Wireless_Inc*CDMA*-if00-port0", \\
SYMLINK+="cellcard"
Some users ask how to do things like this.
- create an additional link with a shorter name
- create a link which matches more loosely
(omit certain path segments e.g. serial numbers)
- change permissions on certain USB device nodes
Allow them to realize this without reading the friendly *.c files.
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
|
Dates aren't shown in the manpages. So they are not really useful,
and no-one is going to remember to update them.
"<refmiscinfo class="version"></refmiscinfo>" sounds even less useful.
I leave the unused "title" and "productname" tags. They could
theoretically be useful, and aren't hard to maintain. We just need to
fix the "title" for udevadm.
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
|
|
|
It did not work for the last couple of releases.
If RUN{record_failed}+="..." is given, a non-zero execution will mark
the event as failed. Recorded failed events can be re-triggered with:
udevadm trigger --type=failed
The failed tracking _might_ be useful for things which might not be
ready to be executed at early bootup, but a bit later when the needed
dependencies are available. In many cases though, it indicates that
something is used in a way it should not.
|
|
|
|
|
|
|
|
$ udevadm trigger -n -v --subsystem-match=usb --sysname-match=2-1.1*
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.1
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.1/2-1.1.1:1.0
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.2
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.2/2-1.1.2:1.0
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.2/2-1.1.2:1.1
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1:1.0
|
|
|
|
|
|
We may need to handle SIGCHLD before the queued worker message. The last
reference, from the SIGCHLD or the worker message will clean up the worker
context. In case we receive an unexpected SIGCHLD with an error, we let
the event fail and clean up the worker context.
|
|
Persistent network rules write out new rules files. When rules change,
we need to kill all workers to update the in-memory copy of the rules.
We need to make sure, that a worker finshes its work for all device
messages it has accepted, before it exits after a SIGTERM from the main
process.
|
|
<zzam> kay: udevadmin info -e prints all lines with a space after the :, but the W: line
<kay> zzam: yeah, seems so, and the R: and the A:
<zzam> yeah
|
|
Jul 8 09:36:41 udevd[663]: worker [5491] did not accept message, kill it
Jul 8 09:36:41 udevd[663]: worker [5491] unexpectedly returned with 0
Jul 8 09:36:41 udevd[663]: worker [5551] unexpectedly returned with 0
Jul 8 09:36:41 kernel: [ 156.832086] <6>udevd[663]: segfault at 4 ip 00959fbc sp bfbe7b78 error 6 in udevd[94f000+1c000]
https://bugs.launchpad.net/ubuntu/+source/udev/+bug/396957
|
|
|
|
|
|
|
|
Private variables can be marked like:
ENV{.FOO}="bar"
|
|
|
|
|
|
|
|
|
|
Getopt is too dumb, the optional argument breaks "udevadm -q symlink".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Event processes now get re-used after they handled an event. This reduces
pressure on the CPU significantly because cloned event processes no longer
cause page faults in the main daemon. After the events have settled, the
no longer needed worker processes get killed.
|
|
|
|
|
|
|
|
|
|
The math in skip_to() was the wrong way round and allocated a
variable size array on the stack with a massively negative size.
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
|
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
|
|
|
Directory lookups show up in profiling. The queue files are responsible
for a large proportion of file-related system calls in udev coldplug.
Instead of creating a file for each event, append their details to a
log file. The file is periodically rebuilt (garbage-collected) to
prevent it from growing indefinitely.
This single queue file replaces both the queue directory and the
uevent_seqnum file. On desktop systems the file tends not to grow
beyond one page. So it should also save a small amount of memory in
tmpfs.
Tests on a running EeePC indicate average savings of 5% *udevd* cpu time
as measured by oprofile. __link_path_walk is reduced from 1.5% to
1.3%. It is not completely clear where the rest of the gains come from.
In tests running ~400 events, the queue file is rebuilt about 5 times.
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|