aboutsummaryrefslogtreecommitdiffstats
path: root/udev-config/doc/05-udev-early.txt
diff options
context:
space:
mode:
Diffstat (limited to 'udev-config/doc/05-udev-early.txt')
-rw-r--r--udev-config/doc/05-udev-early.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/udev-config/doc/05-udev-early.txt b/udev-config/doc/05-udev-early.txt
new file mode 100644
index 000000000..9c0fb4fb8
--- /dev/null
+++ b/udev-config/doc/05-udev-early.txt
@@ -0,0 +1,33 @@
+Purpose of rules file:
+
+The kernel does not always fully populate a given kobject's attributes before
+sending the uevent for that kobject. This means that a given sysfs directory
+may not have all the required files in it (each directory corresponds to a
+kobject, and each file corresponds to an attribute).
+
+Therefore, we must sometimes wait for attributes to show up when devices are
+discovered. This is accomplished by udev's WAIT_FOR_SYSFS rule types.
+
+
+Description of rules:
+
+All rules in this file match ACTION="add", because none of them apply when
+devices are being removed.
+
+SUBSYSTEM is the kernel subsystem that the device uses. Current kernels have
+some issues with SCSI device attributes being created too late. For any device
+with a SUBSYSTEM of scsi, we must wait for the ioerr_cnt attribute. (This is
+the last attribute created for SCSI devices, so when this attribute appears,
+the kobject is fully populated.)
+
+It is also possible to use SUBSYSTEMS in Udev rules. Using SUBSYSTEMS would
+cause Udev to search up the device tree for a matching SUBSYSTEM value. (Note
+that "the device tree" is not necessarily the same as the path under /sys (the
+DEVPATH). Rather, "up the device tree" is the path followed by udevinfo when
+it is given the argument "-a".)
+
+We do not use SUBSYSTEMS in this rule, because we only care about the SUBSYSTEM
+of the kobject in question. We don't care about devices that are children of
+SCSI devices, only the SCSI device itself. We will use SUBSYSTEMS in later
+rules, though.
+