← Back to team overview

ubuntu-x-swat team mailing list archive

[Bug 381493] Re: i945 (dell d430) karmic randomly stops updating display and responding to keyboard/mouse

 

This problem also occurs on my Dell D630 laptop, running Jaunty (9.04),
packaged kernel 2.6.28-13-generic with all updates installed (as of
2009-06-25). Sometimes it happens when I'm actively working; sometimes
when the computer is idle.

The symptoms seem somewhat analogous to Robert Collins, but differ in a couple of aspects (killing X with SIGTERM works).
I also tried some weird things on a locked desktop that I could think of (like the surprising response to launching xev).

X doesn't react to:
* Keyboard input, mouse clicks, laptop power button, volume buttons, etc.
* Killing application windows (like GNOME panel, individual tray processes) have no visible effect
* Ctrl-Alt-Backspace
* Even though the mouse cursor moves, mouseover effects don't work.

X reacts to:
* Moving the mouse also moves the cursor on screen
* Kernel and non-X-related applications work (ssh, daemons, hotplug)
* (Re-)attaching a USB mouse can be seen in Xorg.0.log (using evdev) -- after attaching, this mouse also moves the cursor
* 'killall -9 X' shows "black and blue noise", and after a couple of seconds brings me back to GDM. Everything works fine after I log in again
* After killing the gnome-panel in a crashed Xorg, launching 'DISPLAY=:0 xev' from ssh makes the gnome-panel disappear (whoa, X isn't dead -- it suddenly updates the screen!). However, xev itself doesn't appear.
* Ctrl+Alt+Shift+F1 successfully switches to the text mode. After switching back (Alt+F7), all windows are blank (though windows are colored differently from the desktop), and icons on the desktop are no longer visible. The gradient background, however, is still visible.

Possible clues:
* I'm using the suspend feature quite often
* The laptop has an Intel X3100 (GM965) graphics chip (like Robert Collins); "eye candy" is turned off.
* I'm often connecting and disconnecting a second DVI screen in a dual-head setup, using xrandr to adjust X desktop.

dmesg and /var/log/messages contain no clues.

Xorg.0.log has some interesting lines (but no timestamps, GRR!):
% egrep EE\|WW /var/log/Xorg.0.log
(II) Loading extension MIT-SCREEN-SAVER
(WW) intel(0): libpciaccess reported 0 rom size, guessing 64kB
(EE) intel(0): Unable to write to SDVOCTRL_E for SDVOB Slave 0x70.
(WW) intel(0): Register 0x61200 (PP_STATUS) changed from 0xc0000008 to 0xd0000009
(WW) intel(0): PP_STATUS before: on, ready, sequencing idle
(WW) intel(0): PP_STATUS after: on, ready, sequencing on
(WW) intel(0): Register 0x70024 (PIPEASTAT) changed from 0x00000000 to 0x00000207
(WW) intel(0): PIPEASTAT before: status:
(WW) intel(0): PIPEASTAT after: status: VSYNC_INT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS OREG_UPDATE_STATUS
(WW) intel(0): ESR is 0x00000001
(WW) intel(0): Existing errors found in hardware state.
(EE) intel(0): Unable to write to SDVOCTRL_E for SDVOB Slave 0x70.
[ ... above line repeats 37 times ... ]
(EE) Logitech USB-PS/2 Optical Mouse: Read error: No such device
(WW) intel(0): ESR is 0x00000001
(WW) intel(0): Existing errors found in hardware state.
(WW) intel(0): ESR is 0x00000001
(WW) intel(0): Existing errors found in hardware state.
(EE) Logitech USB Optical Mouse: Read error: No such device

Mouse read errors are me detaching the USB mouse.

"ESR is 0x00000001" and "Existing errors found in hardware state." are a
result of switching between text mode and Xorg.

SSH'ing in and stracing the X process reveals that it's spinning in the
select() loop with a 33ms timeout (generating 30 CPU wakeups per second
in powertop -- it doesn't do that usually!). Input events make the
select() return and X successfully read()s the events from fd 27.

Here's me pressing "a" on the keyboard:

select(256, [1 3 5 12 13 47], NULL, NULL, {0, 33000}) = ? ERESTARTNOHAND (To be restarted)
--- SIGIO (I/O possible) @ 0 (0) ---
select(28, [14 15 16 17 18 19 27], NULL, NULL, {0, 0}) = 1 (in [15], left {0, 0})
rt_sigprocmask(SIG_BLOCK, [IO], [IO], 8) = 0
select(1024, [15], NULL, NULL, {0, 0})  = 1 (in [15], left {0, 0})
read(15, "a\273CJ\0\0\0\0\341O\2\0\0\0\0\0\4\0\4\0\36\0\0\0"..., 24) = 24
select(1024, [15], NULL, NULL, {0, 0})  = 1 (in [15], left {0, 0})
read(15, "a\273CJ\0\0\0\0\367O\2\0\0\0\0\0\1\0\36\0\1\0\0\0"..., 24) = 24
select(1024, [15], NULL, NULL, {0, 0})  = 1 (in [15], left {0, 0})
read(15, "a\273CJ\0\0\0\0\373O\2\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 24) = 24
select(1024, [15], NULL, NULL, {0, 0})  = 0 (Timeout)
rt_sigreturn(0x1)                       = -1 EINTR (Interrupted system call)
poll([{fd=12, events=POLLIN}], 1, 0)    = 0 (Timeout)
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
ioctl(11, 0x6458, 0)                    = 0
select(256, [1 3 5 12 13 47], NULL, NULL, {0, 11000}) = 1 (in [5], left {0, 10967})
ioctl(5, TCFLSH, 0x2)                   = 0
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
ioctl(11, 0x6458, 0)                    = 0
select(256, [1 3 5 12 13 47], NULL, NULL, {0, 10000}) = 0 (Timeout)


Mouse moves and also mouse *CLICKS* (!?) are written to fd 28 after
being read; here's a mouse click:

select(256, [1 3 5 12 13 47], NULL, NULL, {0, 33000}) = 0 (Timeout)
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
ioctl(11, 0x6458, 0)                    = 0
--- SIGIO (I/O possible) @ 0 (0) ---
select(28, [14 15 16 17 18 19 27], NULL, NULL, {0, 0}) = 1 (in [14], left {0, 0})
rt_sigprocmask(SIG_BLOCK, [IO], [IO], 8) = 0
select(1024, [14], NULL, NULL, {0, 0})  = 1 (in [14], left {0, 0})
read(14, "T\274CJ\0\0\0\0\332\376\2\0\0\0\0\0\1\0\20\1\0\0\0\0T\274CJ\0\0\0\0\342"..., 64) = 48
select(1024, [14], NULL, NULL, {0, 0})  = 0 (Timeout)
rt_sigreturn(0x1)                       = 0
select(256, [1 3 5 12 13 47], NULL, NULL, {0, 28000}) = 0 (Timeout)
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
writev(28, [{"\4\1\260h\206/!\4\336\0\0\0\246\0 \1\0\0\0\0\215\3\3\1\215\3\3\1\f \1\0"..., 32}], 1) = 32
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
ioctl(11, 0x6458, 0)                    = 0
select(256, [1 3 5 12 13 47], NULL, NULL, {0, 0}) = 0 (Timeout)
setitimer(ITIMER_REAL, {it_interval={0, 20000}, it_value={0, 20000}}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, [IO], [], 8)  = 0
rt_sigprocmask(SIG_UNBLOCK, [IO], NULL, 8) = 0
writev(28, [{"\5\1\260h\267/!\4\336\0\0\0\246\0 \1\0\0\0\0\215\3\3\1\215\3\3\1\f!\1\0"..., 32}], 1) = 32
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
ioctl(11, 0x6458, 0)                    = 0
select(256, [1 3 5 12 13 47], NULL, NULL, {0, 16000}) = 0 (Timeout)


** Attachment added: "Xorg log file from the crash"
   http://launchpadlibrarian.net/28376166/Xorg.0.log

-- 
i945 (dell d430) karmic randomly stops updating display and responding to keyboard/mouse
https://bugs.launchpad.net/bugs/381493
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xserver-xorg-input-evdev in ubuntu.