I have big problem with /sbin/udevd. For 5-10 minutes after starting X, the system load is 100% (almost everything caused by the /sbin/udevd process).
The strace output is looping around sth like this:
Code:
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7ff7bc9d0780) = 29354
select(7, [3 4 5 6], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
write(7, "\0", 1) = 1
rt_sigreturn(0x7) = -1 EINTR (Interrupted system call)
select(7, [3 4 5 6], NULL, NULL, NULL) = 1 (in [6])
read(6, "\0", 256) = 1
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29354
unlink("/dev/.udev/failed/\\x2fdevices\\x2fpci0000:00\\x2f0000:00:02.0\\x2fdrm\\x2fcard0") = -1 ENOENT (No such file or directory)
unlink("/dev/.udev/queue/57056") = 0
wait4(-1, 0x7fff68f8358c, WNOHANG, NULL) = -1 ECHILD (No child processes)
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7ff7bc9d0780) = 29355
When the load goes down to normal state, the strace looks like:
Code:
select(7, [3 4 5 6], NULL, NULL, NULL
as if it hanged somewhere in the loop.
Due to my lack of knowledge I can not decode the output. I would be very grateful for any suggestions of how to trace the problem.
I'm using:
udev 135
kernel 2.6.31-gentoo-r6
I also attached my kernel config.