Xorg 7.4 freezes when not moving the mouse
Lucius Windschuh
lwindschuh at googlemail.com
Sat Jan 24 08:57:51 PST 2009
Hi guys.
I updated yesterday to the new Xorg 7.4 on my laptop. After rebuilding
many of my ports due to the libxcb dependency, I stumbled upon a this
error:
The X server stops responding: nothing on the screen changes. Until I
move the mouse cursor.
Then, everything is normal for some time. And when I stop moving the
mouse, it freezes again after a short time.
Literally, this is a show-stopper. ;-)
Some investigation with ktrace showed that my mouse is responsible:
My configuration uses /dev/sysmouse as mouse device. It is opened by
xf86OpenSerial() (xorg-server:
hw/xfree86/os-support/shared/posix_tty.c).
After some ioctls, this function clears the O_NONBLOCK flag on the
associated file descriptor. So that's why X waits with blocking I/O
for me to move the mouse, which lets moused generate output on
/dev/sysmouse.
Clearing O_NONBLOCK seems a bit strange to me, but I did not look
further into the xf86OpenSerial()-Code. Instead, I patched
xf86-input-mouse to set O_NONBLOCK again.
I am not sure if this is the right point to correct the error. I would
patch out the part around "i &= ~O_NONBLOCK" in xf86OpenSerial, but
this could have consequences for other devices that assume that their
device I/O blocks.
You can find the dmesg, xorg.conf and Xorg.1.log and the patch on my
site: http://sites.google.com/site/lwfreebsd/Home/files
The patch itself is quite simple (
http://sites.google.com/site/lwfreebsd/Home/files/xf86-input-mouse-O_NONBLOCK.diff.txt
).
Other thoughts?
I wonder why nobody has complained before. Is nobody using moused
these days? ;-)
Lucius
More information about the freebsd-x11
mailing list