I just read an article on LWN's kernel page about plans to remove tasklets, and I thought I'd explain what the DRM is using tasklets for. Maybe there's other ways to satisfy the requirements equally well or even better.
The i915 driver uses a tasklet to make sure a GL buffer swap blit or flip takes effect (or at least starts in the case of a blit) during the vertical blank period, to avoid tearing. I chose a tasklet for this purpose because: * The traditional method of the vertical blank interrupt waking up the user process, which would then emit the buffer swap commands, didn't even come close to avoiding tearing. So I suspect a workqueue wouldn't cut it either. * The processing of scheduled buffer swaps could potentially take a long time, so doing it in hardirq context could cause high IRQ latency. * It requires holding the DRM lock, so the 'each tasklet can only run once at a time' restriction is fine. I'm looking forward to any suggestions what to do with this in case tasklets disappear, and I'll gladly provide further clarification on the requirements. -- Earthling Michel Dänzer | http://tungstengraphics.com Libre software enthusiast | Debian, X and DRI developer ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel