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 psmintr(). Scott 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 > > > Hi, > 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 > seconds. > 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 > > >Received on Wed Nov 05 2003 - 18:30:49 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:27 UTC