Cool! It probably makes sense to use a really old version of XFree86/X.org and look at the changes rather than diffing the files 1:1..
Yeah, but I can't get a point to start :D I'm not sure what we need.
Now you know why I haven't done it yet. Its a little more than just a diff of the trees.
The inTree stuff based on X.org?
The in-tree stuf is based on the ./util/vgabios stuff which came from xfree86 long ago. The X.org fork should not be that much different than the xfree86 stuff. The stuff in-tree has the directory structure cleaned up so its more sane.
Rather than diff the in-tree to the X.org or xfree86 I would start by diffing the stuff in util/vgabios/x86emu first. That will let you see what has been introduced into the X* stuff. I would then fork a copy of vgabios and test all the updates. Then when you understand what changes were made you can try to roll them into the in-tree.
Speak of all this my question still stand about IO to the timer. Is this intercepted or bare metal? From what I see all IO is passed directly on to the hardware.
In V1 I had a vga bios that did not do very well with the large jump in timer reads caused by the emulator. It made the delay routine sit and spin for long periods of time. I had the source to the bios so I was able to fix it there rather than in the emulator.
The symptoms were similar to what Chris is seeing.
Chris, please disable all your current emu debug stuff and then apply this patch and send the output. This should show the timer IO accesses but not all the other stuff to keep the noise level down.