* speed up udev-acl.mk [was: Re: CK.OpenSession(): Do not block on
@ 2009-12-21 15:18 Martin Pitt
2009-12-21 15:25 ` Kay Sievers
0 siblings, 1 reply; 2+ messages in thread
From: Martin Pitt @ 2009-12-21 15:18 UTC (permalink / raw)
To: linux-hotplug
[-- Attachment #1: Type: text/plain, Size: 1414 bytes --]
Hello Lennart,
Lennart Poettering [2009-12-21 15:32 +0100]:
> The dbus messages really need to be the last thing that happens, the
> seat.d hooks *must* be finished first, unless you are a sucker for
> raciness nightmares.
Fair enough.
> Also note that /usr/lib/ConsoleKit/run-seat.d/udev-acl.ck is actually
> *not* a script.
Right, I know. I meant "hook".
> I cannot really believe that there is really that much to optimize
> here in this area... Except maybe that udev-acl might not be
> particularly fast since it iterates through the device list
> linearly?
It currently runs for about half a second (on a Dell Mini 10 anyway
[1]), which is really quite a lot. udev-acl uses udev_enumerate()
which always walks the entire /sys tree. In this case this isn't even
conceptually necessary since all we do is a property match (finding
ACL_MANAGE devices), and properties are stored in udev itself (rather,
/dev/.udev/db/) instead of the sysfs tree.
I just committed a slight optimization which cuts down the number of
readlink() and stat() by a third in this case. Completely avoiding the
/sys traversal is more difficult, but I'm still working on that.
Martin
[1] http://people.canonical.com/~scott/daily-bootcharts/20091221-max.png
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: speed up udev-acl.mk [was: Re: CK.OpenSession(): Do not block on
2009-12-21 15:18 speed up udev-acl.mk [was: Re: CK.OpenSession(): Do not block on Martin Pitt
@ 2009-12-21 15:25 ` Kay Sievers
0 siblings, 0 replies; 2+ messages in thread
From: Kay Sievers @ 2009-12-21 15:25 UTC (permalink / raw)
To: linux-hotplug
On Mon, Dec 21, 2009 at 16:18, Martin Pitt <martin.pitt@ubuntu.com> wrote:
> It currently runs for about half a second (on a Dell Mini 10 anyway
> [1]), which is really quite a lot. udev-acl uses udev_enumerate()
> which always walks the entire /sys tree. In this case this isn't even
> conceptually necessary since all we do is a property match (finding
> ACL_MANAGE devices), and properties are stored in udev itself (rather,
> /dev/.udev/db/) instead of the sysfs tree.
>
> I just committed a slight optimization which cuts down the number of
> readlink() and stat() by a third in this case. Completely avoiding the
> /sys traversal is more difficult, but I'm still working on that.
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/controlC1
then the udev-acl program would just need to apply the same ACL to all
nodes found in this directory. :)
Cheers,
Kay
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-12-21 15:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-21 15:18 speed up udev-acl.mk [was: Re: CK.OpenSession(): Do not block on Martin Pitt
2009-12-21 15:25 ` Kay Sievers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).