More ULE bugs fixed.

Eirik Oeverby ltning at anduin.net
Wed Nov 5 02:29:01 PST 2003


Sheldon Hearn wrote:
> On (2003/11/04 15:46), Jeff Roberson wrote:
> 
> 
>>>The thing is, I'm using 4BSD, not ULE, so I wouldn't trouble Jeff to
>>>look for a cause for that specific problem in ULE.
>>
>>How long have you been seeing this?  Are you using a usb mouse?  Can you
>>try with PS/2 if you are?
> 
> 
> Since my last update, Fri Oct 24 17:47:22.
> 
> I am using a USB mouse, but don't have a PS/2 one.  I'm also using
> moused, and my WM is sawfish.
> 
> The problem with all these reports is that they're scattered.  It's hard
> to pin down exactly what the common elements are.  Indeed, we may be
> looking at combinations of elements.
> 
> I don't have time to be more helpful, which is why I hadn't complained.
> I just wanted to include the datapoint that over-active mouse behaviour
> under load exists under SCHED_4BSD as well.
> 
> Incidentally, this is under ATA disk load.  I don't really push my CPU.

Though I am not a hardcore C programmer, much less a FreeBSD contributor 
in any way, I do have some experience in tracking down problems like 
this. Used to have a lot of them on some of the more obscure platforms 
I've been using in the past.
My feeling is (and it might be completely wrong ofcourse) that we are 
dealing with atleast two completely separate issues here. The first has 
to do with mouse jerkiness, the second has to do with bogus mouse events.
There is a significant difference between these two, and personally I am 
leaning towards concluding that the first has to do with the scheduler, 
and the second has to do with something entirely different - interrupt 
handler or something else of the sorts.
The first is simply that the mouse stops for a brief moment and then 
continues from the point where it stopped. Perhaps this is the situation 
that is remedied by bypassing moused? Is moused perhaps not getting the 
CPU cycles it needs to process and pass on mouse messages?
The second is that mouse messages are actually *lost*, or bogus ones are 
being generated. I guess it's the first, making moused or X misinterpret 
the messages it gets. Where along the chain it fails I obviously have no 
clue. The consequence of this is that when the mouse stops (like in #1) 
but then resumes from an entirely different point - be it 10 pixels away 
or at the other end of the screen - possibly even generating a button 
push (but not necessarily the corresponding button release) message.

These two situations could at first sight be mistaken for being the same 
symptom, but I am pretty sure they are very different. One may influence 
the other, or they may by coincidence (or for some good reason) happen 
at the same time, but I believe the errors happen in different parts of 
the kernel.

When you say you get the bogus mouse events (which I believe you are 
saying atleast ;) only during load, I'm immediately thinking that yes, 
that might make sense. But I guess that's better left to those who are 
in the know to decide ;) I have never seen it happen with the 4BSD 
scheduler, but that might have other reasons (hardware?).

Why don't you try with the new interrupt handler? Helped me quite a lot.. :)


/Eirik

> 
> Ciao,
> Sheldon.




More information about the freebsd-current mailing list