Re: [2.6.34-git8][regression] massive polling problems with udevdand other processes
From: walt
Date: Sat May 22 2010 - 16:21:32 EST
On 05/22/2010 12:35 PM, Shawn Starr wrote:
Just built today's snapshot from linus's tree and have problems with udev
using 100% cpu and KDE processes also pegging cpus.
This is with Fedora 13 + snapshot kernel from git.
Anyone else noticing this?
Yes, just bisected it to this:
commit a7cf4145bb86aaf85d4d4d29a69b50b688e2e49d
Author: Eric Paris <eparis@>
Date: Fri May 14 11:44:10 2010 -0400
anon_inode: set S_IFREG on the anon_inode
anon_inode_mkinode() sets inode->i_mode = S_IRUSR | S_IWUSR; This means
that (inode->i_mode & S_IFMT) == 0. This trips up some SELinux code that
needs to determine if a given inode is a regular file, a directory, etc.
The easiest solution is to just make sure that the anon_inode also sets
S_IFREG.
Signed-off-by: Eric Paris <eparis@>
Signed-off-by: Al Viro <viro@>
udevd is busy polling anon_inode:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
udevd 695 root txt REG 8,21 117632 1523956 /sbin/udevd
udevd 695 root mem REG 8,21 51528 1234821 /lib64/libnss_files-2.11.1.so
udevd 695 root mem REG 8,21 43376 2052251 /lib64/libnss_nis-2.11.1.so
udevd 695 root mem REG 8,21 88880 2052264 /lib64/libnsl-2.11.1.so
udevd 695 root mem REG 8,21 31432 1234823 /lib64/libnss_compat-2.11.1.so
udevd 695 root mem REG 8,21 1399984 1234830 /lib64/libc-2.11.1.so
udevd 695 root mem REG 8,21 128424 1234829 /lib64/ld-2.11.1.so
udevd 695 root 0u CHR 1,3 0t0 147 /dev/null
udevd 695 root 1u CHR 1,3 0t0 147 /dev/null
udevd 695 root 2u CHR 1,3 0t0 147 /dev/null
udevd 695 root 3u REG 0,14 1133 1670 /dev/.udev/queue.bin
udevd 695 root 4u unix 0xffff88011f2b3c80 0t0 274 socket
udevd 695 root 5u sock 0,5 0t0 275 can't identify protocol
udevd 695 root 6r REG 0,8 0 17 anon_inode
udevd 695 root 7u REG 0,8 0 17 anon_inode
udevd 695 root 8u unix 0xffff88011f2b3980 0t0 276 socket
udevd 695 root 9u unix 0xffff88011f2b3680 0t0 277 socket
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}], 5, -1) = 1 ([{fd=6, revents=POLLIN}])
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/