udevdはCPUサイクルを使いすぎる

udevdはCPUサイクルを使いすぎる

CPU使用量が約64%程度ですが、その理由はrsyslog残りはほぼすべて持っていきます(追いかけようと努力します)。

次の種類のメッセージを受け取りました/var/log/syslog

Jun  5 23:59:38 vab rsyslogd-2177: imuxsock begins to drop messages from pid 1187 due to rate-limiting
Jun  5 23:59:44 vab rsyslogd-2177: imuxsock lost 62566 messages from pid 1187 due to rate-limiting
Jun  5 23:59:44 vab udevd[1187]: unable to receive ctrl connection: Function not implemented
Jun  5 23:59:44  udevd[1187]: last message repeated 199 times
Jun  5 23:59:44 vab rsyslogd-2177: imuxsock begins to drop messages from pid 1187 due to rate-limiting
Jun  5 23:59:50 vab rsyslogd-2177: imuxsock lost 62568 messages from pid 1187 due to rate-limiting
Jun  5 23:59:50 vab udevd[1187]: unable to receive ctrl connection: Function not implemented
Jun  5 23:59:50  udevd[1187]: last message repeated 199 times

私はまた、多くのことが次のように始まったことを知っていました。

$ pidof udevd 
1891 1890 1887 1885 1884 1881 1879 1877 1875 1873 1871 1869 1868 1865 1864 1861 1860 1857 1746 1744 1742 1740 1738 1736 1734 1732 1413 1318 1304 1209 1205 1202 1187

最後のプロセスであるprocessだけが1187貪欲です。

さらに、次のようなメッセージがたくさん届きました。

$ strace -p 1187
SYS_366(0x3, 0, 0, 0x80800, 0x80800)    = -1 ENOSYS (Function not implemented)
gettimeofday({1370469763, 718315}, NULL) = 0
send(11, "<27>Jun  6 00:02:43 udevd[1187]:"..., 93, MSG_NOSIGNAL) = 93
epoll_wait(0xa, 0x7eb99ed0, 0x8, 0xbb8) = 1
SYS_366(0x3, 0, 0, 0x80800, 0x80800)    = -1 ENOSYS (Function not implemented)
gettimeofday({1370469763, 719617}, NULL) = 0
send(11, "<27>Jun  6 00:02:43 udevd[1187]:"..., 93, MSG_NOSIGNAL) = 93
epoll_wait(0xa, 0x7eb99ed0, 0x8, 0xbb8) = 1

を実行すると問題は解決しますが、再起動するsudo service udev restartたびにコマンドを実行する必要があります。


これは最新のUbuntu 12.04(udev横になる175-0 Ubuntu 9.3)、しかし実行2.6.35カスタムカーネル(尋ねないでください)。

答え1

しかし、2.6.35カスタムカーネルを実行しています。

ここで説明されているように、カーネルのビルドが破損しているかアクティブになっていないようです。ホットスワップ開発のバグ報告

答え2

コメントと作者が述べたように@msw SYS_366 (4を受け入れる)、次のように定義されますunistd.h

#define __NR_accept4    (__NR_SYSCALL_BASE+366)

はいENOSYS

accept4再起動後に表示される場合はおかしいでしょうudev

出力を比較できると思います。

sudo lsof -P -T -p <PID>

再起動の前後に。

本当に同じですか?

/sbin/udevd
/lib/XXX-linux-gnu/libc-x.xx.so

前後など

答え3

振り返ってみると、ARMでこの問題が発生したと述べたはずでした。システムコールが追加されました。2.6.36。サポートしました斑点、動作します!

関連情報