Prev: [2.6.34-git8][regression] massive polling problems with udevd and other processes
Next: [patch] caif: remove unneeded null check in caif_connect()
From: walt on 22 May 2010 16:30 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(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |