Richard Cooper wrote:
Any ideas how I might sync to bit 3 of port 0x3DA, the video card's vertical sync signal?


Well, I don't know if anyone cares, but since I asked the question here, I figure it's appropriate to let everyone know what I came up with.

As best I can tell, it's just not possible under Linux. Everything that does vertical refresh syncing in Linux does it with a CPU-time-eating busy loop. It seems it isn't possible to give up the CPU for a period of time shorter than 10-20ms. Since vertical retraces occur every 17ms, and 17 < 20, if you want to have the CPU when the next retrace occurs, you can't do any kind of sleeping. This is the case even under "realtime scheduling," which seems to be a misnomer for what would be better called "priority scheduling."


What kernel series are you using? Did you compile it yourself? What is HZ set at? 100? 250? 1000? If it's a 2.6 kernel, did you try enabling preemption? With HZ at 100, it is impossible for the kernel to give you better than 10 ms resolution. With HZ at 1000, it can achieve 1 ms resolution (in theory). What else is running on your machine? These questions could help answer whether it's possible.

Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to