kern/59067: [patch] PS/2 mouse unstable

Morten Johansen mail at morten-johansen.net
Sat Nov 8 17:10:23 PST 2003


>Number:         59067
>Category:       kern
>Synopsis:       [patch] PS/2 mouse unstable
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 08 17:10:18 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Morten Johansen
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD home2.morten-johansen.net 5.1-CURRENT FreeBSD 5.1-CURRENT #89: Sun Nov 9 00:27:46 CET 2003 root at home2.morten-johansen.net:/usr/src/sys/i386/compile/i686 i386
Intel Celeron 700MHz, VIA chipset, ATA-66 disk
MS Intellimouse 1.1A
XFree86 4.3.0
(dmesg attached)
>Description:
Sometimes when the system is under heavy IO load, the mouse will freeze for a second or two.
Then the pointer starts moving around by itself in an unordered fashion, and click events are recieved.
This goes on for several seconds, until the driver recovers.
This message is printed to the console:
psmintr: delay too long; resetting byte count
This spesific mouse model must be probed as Generic PS/2 by hint.psm.0.flags="0x300".
Otherwise it is unusable, similar to what is described in PR kern/24827, but that's another bug.
The mouse does not show erratic behaviour under Linux or Windows 2000.
>How-To-Repeat:
On the above system, moving the mouse around fast, while executing:
# dd if=/dev/zero of=test bs=32768 count=4000; sync; sync; sync
>Fix:
Make the psm(4) interrupt handler INTR_FAST.
A patch is attached which moves the data processing into a fast taskqueue or callout.
Leaving the interrupt handler just reading data from hardware into a buffer.
It may break your system, but works for me, until a final fix is found.


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list