speed up udev-acl.mk [was: Re: CK.OpenSession(): Do not block on run-seat.d scripts?]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux