Xorg input thread (2)
jbarnes at virtuousgeek.org
Mon Jul 9 08:13:50 PDT 2007
On Saturday, July 7, 2007 11:23:49 pm Tiago Vignatti wrote:
> Jesse Barnes escreveu:
> > Well, the curious thing was what Tiago said:
> >> with or without the input thread when I mlock some mice
> >> functions I obtained an unbelievable smooth movement
> > Which would imply that when SIGIOs are sent, the process is woken up and
> > can process things just fine, even if other pages are still coming in
> > from disk (I didn't think this was possible, I'd have to poke around the
> > kernel).
> Just to be clear, the current input thread is not using SIGIO. It's only
> using a poll(2) to monitor the device's sockets.
> And Jesse, to be fair, I just tried a little with mlock. I spent more
> time with mlockall (which is much easier to play than mlock) seeing
> whether the cursor lags or not. My little results with mlockall
> demonstrates that we can obtain a smooth mouse only increasing 3MB of
> "always resident memory".
Ah, ok that explains it (saw your last mail about this too, the experiments
looked good, though I'm surprised how much memory pthreads libraries use).
> a. Initially I think that you had discarded mlock. But now I'll invest
> time on this and come with more exactly values of experimentation.
Yeah, if we can get it down to a very small amount of mlocked memory, it may
be a viable solution.
> b. try to investigate a little the DRM/DRI things towards something like
> the Ultrix systems which Keith talked. Keith, could you point where can
> we find that old Ultrix code which you mentioned?
Sounds like you'll be mostly on your own here, but for hardware cursors, it
sounds like you'd mainly have to code up:
- code for a specific DRM driver to update the cursor registers (you can
probably take this from the DDX driver)
- new DRM ioctl for cursor warp
- new DDX code to call into DRM for cursor setup
- DRM code for handling acceleration
- kernel input layer changes to notify DRM when mouse movement occurs
- new kernel API to tie together DRM devices and input devices
- new cursor transform APIs
I'm probably missing a few items here, but I'm sure they'd become clear once
you started trying to make it work. :)
More information about the xorg