the PS/2 mouse problem
scottl at freebsd.org
Wed Nov 5 19:30:49 PST 2003
One thought that I had was to make psmintr() be INTR_FAST. I need to
stare at the code some more to fully understand it, but it looks like it
wouldn't be all that hard to do. Basically just use the interrupt handler
to pull all of the data out of the hardware and into a ring buffer in
memory, and then a fast taskqueue to process that ring buffer. It would
at least answer the question of whether the observed problems are due to
ithread latency. And if done right, no locks would be needed in
On Wed, 5 Nov 2003, Morten Johansen wrote:
> Robert Watson wrote:
> > There's been some speculation that the PS/2 mouse problem could be due to
> > high interrupt latency for non-fast interrupt handlers (especially ones
> > not MPSAFE) in 5.x. I think it would make a lot of sense for us to push
> > Giant off both the PS/2 mouse and syscons interrupt handlers in the near
> > future. For syscons, this would also improve the reliability of dropping
> > into the debugger from a non-serial console.
> > Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
> > robert at fledge.watson.org Network Associates Laboratories
> I tried pushing Giant out of psm a while ago, a patch is attached.
> It did not help, but probably eases contention on Giant a bit.
> psm gets a lot of interrupts.
> I am still seeing occasional weirdness from the mouse.
> It freezes then goes berserk (moving and triggering events) for a few
> The kernel says:
> psmintr: delay too long; resetting byte count
> (I was wrong about the message in a previous mail)
> This actually happens more often in -stable than in -current.
> moused or not does not make a difference.
> The latest SCHED_ULE and interrupt changes, have not fixed this problem.
> Otherwise, FreeBSD 5-current is the best OS I have ever run.
> Morten Johansen
More information about the freebsd-current