Monday, May 15, 2006

Some thoughts on the Xen Virtual Framebuffer

I have about a day of free time before my family comes in for graduation. I've figured I'd use some of this to do a little work on the Xen framebuffer. Unfortunately, it's very low on my priority list so I've not gotten very much time at all to work on it.

The one required task I have to complete is to bring the current code up to date and to make it use XenStore. That's pretty straight forward.

Another thing I'd like to do is finally address some of the nagging performance problems I've seen. The first fix is to implement a shadow framebuffer to reduce the size of the update regions. Instead of doing a full shadow (like I did in QEmu), I'm thinking of instead just allocating a page when a portion of the framebuffer is write faulted. I'll copy the original contents of the page to the allocated page and then when it comes time to invalidate, I'll have something kosher to compare to.

I also want to implement the dirty bitmap. I like that approach much better because it lets dom0 decide how to break the region into rectangles.