Senior project ideas
vignatti at c3sl.ufpr.br
Thu Sep 4 03:43:11 PDT 2008
Adam Jackson escreveu:
> One of the items (now) on that list, and something that's been a
> perpetual pain for us, is the bit about replacing the server's
> hand-written dispatch code with something machine-generated. Roughly
> all of the security advisories we've had in the last two years or so
> have been from the protocol code, either from not swapping requests
> properly, or being too trusting with the data the client feeds us, like
> using screen numbers as array indices without checking whether that
> screen exists first.
A bit related with the dispatcher, there's also an interesting work that
we can do with the X server scheduler. What we want is simple: a
preemptive scheduler with priorities (real-time scheduler) to deal with
multiple clients and with a special care for input events.
One interesting thing to considerer is that the issue of long-lived
requests is mostly a thing of the past. PolyLines are not that common,
fonts are mostly client side, and OpenGL is usually client-side as well
due to DRI.
Moreover, clients can block each other. Just try to execute a `x11perf
-getimagexy500` plus play a video to see. x11perf eats all the X
process. Isn't wiser to give a tiny quantum here for each client? The
funny thing is that -dumbSched gives a better result than with the
_smart_ scheduler :) So simultaneous client requests aren't dealt by
smart scheduler at all.
This is quite interesting for those who is trying to start in the X
world because it doesn't touch much of the graphics oddities :)
(I added this all in the wiki ToDo)
Good luck with you project,
C3SL - Centro de Computação Científica e Software Livre
More information about the xorg