Senior project ideas

Tiago Vignatti 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,

-- 
Tiago Vignatti
C3SL - Centro de Computação Científica e Software Livre
www.c3sl.ufpr.br



More information about the xorg mailing list