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우분투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. 지원 했어반점, 작동합니다!

관련 정보