[Nouveau] [Bug 90482] New: Xorg take 100% CPU when using multiple independent screen configuration

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat May 16 08:14:07 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=90482

            Bug ID: 90482
           Summary: Xorg take 100% CPU when using multiple independent
                    screen configuration
           Product: xorg
           Version: unspecified
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Driver/nouveau
          Assignee: nouveau at lists.freedesktop.org
          Reporter: dura at duradsl.duckdns.org
        QA Contact: xorg-team at lists.x.org

Created attachment 115835
  --> https://bugs.freedesktop.org/attachment.cgi?id=115835&action=edit
my xorg.conf

My xorg setup is based on two independent screen (see attached xorg.conf). Most
of the time the Xorg process eat 100% of one CPU core.

I will try to explain what I think is the problem and the fix (or workaround) I
made to the nouveau code.

Basically, the problem is that nouveau add a socket to the xorg socket list but
does not register a handler that will be able to deal with it. When data is
received on this socket the Select call in xorg-server/os/WaitFor.c will return
but the data will not be read. When Select is called again it returns
immediately because data was not read, and again, and again, resulting in 100%
CPU core consumption.

Now, some details (based on xf86-video-nouveau-1.0.11 source code)
To add a socket in the xorg server list AddGeneralSocket is used.
In src/drmmode_display.c AddGeneralSocket is called in two places: line 1605
(via drmmode_uevent_init and line 1554) and 1610. If line 1608 condition is not
meet, a socket is added without an handler so drmmode_wakeup_handler will never
be called with correct data.

My solution is to add a new handler that will only handle the udev part when
line 1608 condition is not meet. See attached patch.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20150516/c563f453/attachment.html>


More information about the Nouveau mailing list