lkml.org 
[lkml]   [2010]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [2.6.34-git8][regression] massive polling problems with udevd and other processes
    Date
    On 05/22/2010 03:59 PM, Eric Paris wrote:
    > On Sat, May 22, 2010 at 4:44 PM, Al Viro<viro@zeniv.linux.org.uk> wrote:
    >> On Sat, May 22, 2010 at 01:21:19PM -0700, walt wrote:
    >>> 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
    >>
    >> Cute... Frankly, I'd be fine with just reverting that one and teaching
    >> selinux to STFU. However, I wonder what specifically is getting polled.
    >> Which anon_inode users?
    >
    > On my system udev has both inotify and signalfd open. He's asking for
    > more of the strace. If the ONLY thing that udev is doing is polling
    > with no other syscalls at all it's a udev problem (although maybe one
    > where we have to maintain bug for bug compatibility.
    >
    > Can you show us a more lines of strace context and the output of ls -l
    > /proc/$PID/fd ? That should give us a better idea what udev is doing
    > and which anon_inode we are dealing with.

    strace is just very rapidly printing out thousands of identical lines like
    the one I posted earlier. Here is a new run:

    $head /tmp/strace
    ioctl(6, FIONREAD, [0]) = 0
    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}])
    ioctl(6, FIONREAD, [0]) = 0
    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}])
    ioctl(6, FIONREAD, [0]) = 0
    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}])
    ioctl(6, FIONREAD, [0]) = 0
    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}])
    ioctl(6, FIONREAD, [0]) = 0
    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}])

    Here is the fd listing for the udevd process:
    $cat /tmp/fd
    lrwx------ 1 root root 64 2010-05-23 08:38 0 -> /dev/null
    lrwx------ 1 root root 64 2010-05-23 08:38 1 -> /dev/null
    lrwx------ 1 root root 64 2010-05-23 08:38 2 -> /dev/null
    lrwx------ 1 root root 64 2010-05-23 08:38 3 -> /dev/.udev/queue.bin
    lrwx------ 1 root root 64 2010-05-23 08:38 4 -> socket:[274]
    lrwx------ 1 root root 64 2010-05-23 08:38 5 -> socket:[275]
    lr-x------ 1 root root 64 2010-05-23 08:38 6 -> anon_inode:inotify
    lrwx------ 1 root root 64 2010-05-23 08:38 7 -> anon_inode:[signalfd]
    lrwx------ 1 root root 64 2010-05-23 08:38 8 -> socket:[276]
    lrwx------ 1 root root 64 2010-05-23 08:38 9 -> socket:[277]





    \
     
     \ /
      Last update: 2010-05-23 20:21    [W:0.033 / U:0.080 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site