Discussion:
[Grml] Speeding up udev?
Hermann
2009-06-30 15:49:19 UTC
Permalink
Hi,
in former mails I reported a slow boot procedure of GRML, and I couldn't
figure out the reason why.
In the meantime I found out that udev seems to slow down the whole
thing.
Deactivating it seems no good solution, since there is hardly any
hardware detected; only the internal drives are recognized. But no
sound, no network etc.
So is there a chance to speed up udev? I didn't find anything in the
manual that refers to "speeding up the procedure".
Any hints?
Hermann

--
Hermann
2009-06-30 15:49:19 UTC
Permalink
Hi,
in former mails I reported a slow boot procedure of GRML, and I couldn't
figure out the reason why.
In the meantime I found out that udev seems to slow down the whole
thing.
Deactivating it seems no good solution, since there is hardly any
hardware detected; only the internal drives are recognized. But no
sound, no network etc.
So is there a chance to speed up udev? I didn't find anything in the
manual that refers to "speeding up the procedure".
Any hints?
Hermann

--
Hermann
2009-06-30 15:49:19 UTC
Permalink
Hi,
in former mails I reported a slow boot procedure of GRML, and I couldn't
figure out the reason why.
In the meantime I found out that udev seems to slow down the whole
thing.
Deactivating it seems no good solution, since there is hardly any
hardware detected; only the internal drives are recognized. But no
sound, no network etc.
So is there a chance to speed up udev? I didn't find anything in the
manual that refers to "speeding up the procedure".
Any hints?
Hermann

--
Michael Schierl
2009-07-01 18:03:22 UTC
Permalink
Post by Hermann
So is there a chance to speed up udev? I didn't find anything in the
manual that refers to "speeding up the procedure".
Any hints?
Udev basically works as follows:

When booting, the /etc/init.d/udev script runs

udevadm trigger

which will create a "device added" event for all the hardware that is
currently present (which is usually quite a lot). Those events are
handled by udevd, which will parse the rules in /etc/udev/rules.d and
/lib/udev/rules.d and run the command(s) mentioned there (like create
device nodes, insert modules, etc.).

The udev script will then run

udevadm settle

which will wait until udevd has handled all of those events.

When you add a device later (like plug in an USB device) this will
create a new "device added" event which will be handled the same way
(parsing rules, running command).

The only way of speeding this up is changing (or removing) (some of) the
rules. It will need a bit of trial and error to find the rules that make
your system slow though.

When you delete all rules, udev will be blazingly fast, but it will not
do anything any longer just as if it was disabled.

You can watch udev events by running

udevadm monitor

in another console (and then for example run udevadm trigger to "re-add"
all the hardware agein).

Hope that helps,

Michael
Michael Schierl
2009-07-01 18:03:22 UTC
Permalink
Post by Hermann
So is there a chance to speed up udev? I didn't find anything in the
manual that refers to "speeding up the procedure".
Any hints?
Udev basically works as follows:

When booting, the /etc/init.d/udev script runs

udevadm trigger

which will create a "device added" event for all the hardware that is
currently present (which is usually quite a lot). Those events are
handled by udevd, which will parse the rules in /etc/udev/rules.d and
/lib/udev/rules.d and run the command(s) mentioned there (like create
device nodes, insert modules, etc.).

The udev script will then run

udevadm settle

which will wait until udevd has handled all of those events.

When you add a device later (like plug in an USB device) this will
create a new "device added" event which will be handled the same way
(parsing rules, running command).

The only way of speeding this up is changing (or removing) (some of) the
rules. It will need a bit of trial and error to find the rules that make
your system slow though.

When you delete all rules, udev will be blazingly fast, but it will not
do anything any longer just as if it was disabled.

You can watch udev events by running

udevadm monitor

in another console (and then for example run udevadm trigger to "re-add"
all the hardware agein).

Hope that helps,

Michael
Michael Schierl
2009-07-01 18:03:22 UTC
Permalink
Post by Hermann
So is there a chance to speed up udev? I didn't find anything in the
manual that refers to "speeding up the procedure".
Any hints?
Udev basically works as follows:

When booting, the /etc/init.d/udev script runs

udevadm trigger

which will create a "device added" event for all the hardware that is
currently present (which is usually quite a lot). Those events are
handled by udevd, which will parse the rules in /etc/udev/rules.d and
/lib/udev/rules.d and run the command(s) mentioned there (like create
device nodes, insert modules, etc.).

The udev script will then run

udevadm settle

which will wait until udevd has handled all of those events.

When you add a device later (like plug in an USB device) this will
create a new "device added" event which will be handled the same way
(parsing rules, running command).

The only way of speeding this up is changing (or removing) (some of) the
rules. It will need a bit of trial and error to find the rules that make
your system slow though.

When you delete all rules, udev will be blazingly fast, but it will not
do anything any longer just as if it was disabled.

You can watch udev events by running

udevadm monitor

in another console (and then for example run udevadm trigger to "re-add"
all the hardware agein).

Hope that helps,

Michael

Loading...