https://bugzilla.novell.com/show_bug.cgi?id=473302 Summary: X.org busy-loops (100% CPU in a select() loop) while desktop is locked Classification: openSUSE Product: openSUSE 11.1 Version: Final Platform: x86 OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: X.Org AssignedTo: bnc-team-xorg-dev@forge.provo.novell.com ReportedBy: matz@novell.com QAContact: xorg-maintainer-bugs@forge.provo.novell.com Found By: Development This bug happens for me since I updated to 11.1 final from 11.1 beta4, and it's extremely annoying for my office mates because my CPU fan is very loud. The error mode is a bit strange. It happens after some time after the desktop is locked (in my case via kdesktop_lock). That first spawns a screen-saver and after some time kills it (to not uselessly use CPU) and switches off the monitor. After the monitor is switched off it takes some more time for the bug to show up. The symptom of it is that X takes 100% CPU without anyone doing anything on the system. The reason is a busy-loop constructed with zero timeout selects, as can be seen in an strace taken from a remote system (i.e. without unlocking the desktop). The relevant excerpt from that strace looks like so: 13:48:02.254152 select(256, [1 3 5 6 12 13 14 15 18 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66], NULL, NULL, {0, 0}) = 0 (Timeout) 13:48:02.254289 clock_gettime(CLOCK_MONOTONIC, {174665, 645523431}) = 0 13:48:02.254383 setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0 13:48:02.254483 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 13:48:02.254581 clock_gettime(CLOCK_MONOTONIC, {174665, 645815070}) = 0 13:48:02.254675 select(256, [1 3 5 6 12 13 14 15 18 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66], NULL, NULL, {0, 0}) = 0 (Timeout) 13:48:02.254812 clock_gettime(CLOCK_MONOTONIC, {174665, 646046604}) = 0 13:48:02.254906 setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0 13:48:02.255006 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 13:48:02.255105 clock_gettime(CLOCK_MONOTONIC, {174665, 646338413}) = 0 13:48:02.255198 select(256, [1 3 5 6 12 13 14 15 18 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66], NULL, NULL, {0, 0}) = 0 (Timeout) Note how select() is called with a zero timeout (i.e. return immediately no matter if some FD is active or not). This happens ad nauseam, and causes the 100% CPU load. It goes away as soon as the desktop is unlocked (then Xorg starts using reasonable timeout ala 175 seconds again). It also goes away if someone moves the mouse (which causes the monitor to be switched on, the graphical screensaver to be started again, hence we then _have_ an active X11 client again, which somehow breaks the busy loop). Unfortunately it's slightly annoying to reproduce as it needs some time after the monitor is switched off to materialize. I.e. it doesn't start immediately after the monitor is switched off, but only after some time (Richard tells me that he had to move the mouse like every 20 minutes which would translate to something like 10 minutes after the monitor is switched off again). I'm fairly sure this didn't happen in 11.1 beta4. xorg-x11-server-7.4-17.3 x11-video-nvidiaG02-180.22-4.1 nvidia-gfxG02-kmp-pae-180.22_2.6.27.7_9.1-4.1 (yes, nvidia) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.