Hi,
On Sat, May 07, 2005 at 12:13:00PM +0100, J. Grant wrote:
On 07/05/05 10:49, Andreas Mohr wrote:
Okay, great! I am running debian sarge 2.6.8-2-k7 kernel, not sure if that is SCHED_ISO and SCHED_BATCH aware, but I can upgrade to the latest kernel in debian testing/sarge if necessary.
Haha, good joke. That stuff will require a REAL self-made kernel, a -ck one with that improved scheduling and much better interactivity, probably best to grab the 2.6.11-ck8 patch version, from http://members.optusnet.com.au/ckolivas/kernel/
(normal kernels don't have non-root realtime scheduling, due to very tricky implementation of usually easily DoS-able realtime priorities)
Hopefully it would give some improvement.
You'd be able to test it now, with my very preliminary proof-of-concept patch that is attached (it's not tested since I currently don't know of any software/game that uses SetThreadPriority()). Also, testing would best be done based on known-to-be-problematic games. If this patch together with a SCHED_ISO-capable kernel makes a real difference, then we have something that we should continue to work on.
OK, again, you need: - 2.6.X-ckX kernel (the ones with SCHED_ISO, SCHED_BATCH support) - rather current (CVS) Wine, since it requires the SetThreadPriority patches in various multimedia/sound threads in Wine - my patch in that Wine - one or better several preferrably problematic game(s) with in-game lags or sound distortion etc. pp.
And of course you should first run the game *without* my patch, since the -ck kernel may very well significantly improve game behaviour anyway (or actually deteriorate it), so the test basis is VERY different from running a normal kernel and this should be taken into account properly, otherwise you can just bin those test findings. :)
I'm interested in test results from as many people as possible, preferrably people with a good (excessive?) gaming background ;)
The best result would be to have this patch dramatically improve lag or sound or graphics interactivity in games in a recent CVS Wine version on a -ck kernel, compared to exactly the same environment *minus* my SetThreadPriority() patch.
One last thing: you might have to change the unix_tid in the patch into unix_pid in case it fails with the unmodified patch.
Please report any changes you observe.
Have fun,
Andreas Mohr