speed up udev-acl.mk
Hey Kay,
Kay Sievers [2009-12-21 16:25 +0100]:
Quoted 6 lines
If it's only about the ACL stuff, we could change the udev-acl logic to maintain hidden symlinks in:
/dev/.udev/acl/c116:32-> ../../snd/controlC1then the udev-acl program would just need to apply the same ACL to all nodes found in this directory. :)
This would be one option.
I thought about providing a special-case implementation of udev_enumerate_scan_devices() which fires when there is only a property match and nothing else. In this case we could just walk /dev/.udev/db (which we have to do anyway to match the properties) and skip the /sys walk. This would speedup other applications as well which search for tagged devices.
Martin
Signature · 2 lines
Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
Quoted 8 lines · Martin Pitt
Kay Sievers [2009-12-21 16:25 +0100]:
Quoted 6 lines
If it's only about the ACL stuff, we could change the udev-acl logic to maintain hidden symlinks in:
Â/dev/.udev/acl/c116:32-> ../../snd/controlC1then the udev-acl program would just need to apply the same ACL to all nodes found in this directory. :)
Quoted 8 lines
This would be one option.
I thought about providing a special-case implementation of
udev_enumerate_scan_devices()which fires when there is only a property match and nothing else. In this case we could just walk/dev/.udev/db(which we have to do anyway to match the properties) and skip the /sys walk. This would speedup other applications as well which search for tagged devices.
We do not distinguish at the moment between kernel properties and udev-added properties. This would work only for udev-added stuff, and break things which match on kernel-supplied properties which are imported from the "uevent" file.
Kay
Martin Pitt [2009-12-21 16:32 +0100]:
Quoted 5 lines
I thought about providing a special-case implementation of
udev_enumerate_scan_devices()which fires when there is only a property match and nothing else. In this case we could just walk/dev/.udev/db(which we have to do anyway to match the properties) and skip the /sys walk.
On second look, we can't reliably/easily map the db to sys paths, because of the linked devices in the db.
So let's skip this for now, and I'll rather look into doing some smaller optimizations like b73bf332.
Thanks,
Martin
Signature · 2 lines
Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
Quoted 9 lines · Martin Pitt
Martin Pitt [2009-12-21 16:32 +0100]:
Quoted 5 lines
I thought about providing a special-case implementation of
udev_enumerate_scan_devices()which fires when there is only a property match and nothing else. In this case we could just walk/dev/.udev/db(which we have to do anyway to match the properties) and skip the /sys walk.On second look, we can't reliably/easily map the db to sys paths, because of the linked devices in the db.
The db filename can intentionally not be used to find the sysfs device. There have been external tools who did read the db directly and we finally needed to stop them doing this. There is still the major/minor in the db file, which could be used to find the sysfs device, but it would still break the very same logic if used with kernel properties instead of udev properties ...
Quoted 2 lines
So let's skip this for now, and I'll rather look into doing some smaller optimizations like
b73bf332.
Sounds good. Otherwise just go for the /dev/.udev/acl/ subdir. That should work fine, if the rest can't be made fast enough.
Kay