and the result is horrible! I tried playing Left4Dead2 but can't join any server because of time outs. Single player loads extremely slow and what was micro-stuttering before hangs the game for multiple seconds now (sometimes it feels like the game runs with < 1 FPS).

So is RT gaming a complete disaster or am I doing something wrong? Does anyone have any experience with this?

Last edited by V10lator on Mon Jul 29, 2013 6:15 pm; edited 1 time in total

You've forced X to use SCHED_RR's tiny timeslices while allowing it to cache-bounce all over the first 4 CPUs. Of course that's going to kill performance.

How to change that? But I also don't think this is the reason. Right now I give it a RT priority of 99, so the highest possible (I gave it 9 before, have to edit the OP) and the game works. But the higher I set the games priority the more things slow down (gave up waiting for it to start with a priority of 99).

Are there any gains from using RT at all? I thought latency should get better and micro-stuttering should be reduced.

Right now I give it a RT priority of 99, so the highest possible (I gave it 9 before, have to edit the OP) and the game works. But the higher I set the games priority the more things slow down (gave up waiting for it to start with a priority of 99).
Are there any gains from using RT at all? I thought latency should get better and micro-stuttering should be reduced.

1/ Giving the highest RT priority to X, your game... is absolutely wrong practice.
Highest RT priority of 99 should be reserved to the handlers of the interrupts which matter and to the watchdogs. Period.
2/ Giving whatever RT priority to a process that has not been especially designed for running in a RT environment will be of no help apart from... definitely screwing your entire system... sooner!_________________

Example to conveniently combine ionice and schedtool, so they both take effect:

Code:

ionice -c2 -n0 schedtool -I -e ut2004

What exactly does the ionice command do? I don't really understand the help of it. :/ Anyway: That works when you start something, I'm searching for a command that works for already started programs (and all of their tasks, like "chrt -a", but that can't handle SCHED_ISO).

Use ps to get the list of threads/processes, then use the list with schedtool.

Okay, that shows that all threads have the same PID but different LWPs. Now I can't find a way to give LWPs to schedtool and ionice but AFAIK giving such tools the PID only affects the main thread only (that's why chrt has the -a flag). So still not helpful.