Scheduler queues for less os-jitter?
I was just wondering, have you considered this?
If daemons are contributing to os-jitter, wouldn`t having them all on their own queue reduce jitter? So people could have the stuff like in Ubuntu they want, without affecting jitter, or needing stuff like Tiny Core, for tiny jitter?
So you get (simplified) something like mainapp - process1 in queue 2, mainapp - process2 in queue 2, mainapp - process 3 in queue 2, etc.
Or is that already batch maybe, lol.
Peace Be With You.
Quoted 11 lines · Uwaysi Bin Kareem
I was just wondering, have you considered this?
If daemons are contributing to os-jitter, wouldn`t having them all on their own queue reduce jitter? So people could have the stuff like in Ubuntu they want, without affecting jitter, or needing stuff like Tiny Core, for tiny jitter?
So you get (simplified) something like mainapp - process1 in queue 2, mainapp - process2 in queue 2, mainapp - process 3 in queue 2, etc.
Or is that already batch maybe, lol.
You could try SCHED_AUTOGROUP, or create whatever task groups manually, or use systemd to do that for you. Like everything else having anything to do with scheduling, all are double edged swords, so may help, may hurt.
-Mike
A message that is not in the archive (sent off-list or not yet received): [email protected]
------- Forwarded message -------
From: "Uwaysi Bin Kareem" <[email protected]>
To: "Mike Galbraith" <[email protected]>
Cc:
Subject: Re: Scheduler queues for less os-jitter?
Date: Sun, 04 Nov 2012 02:19:39 +0100
Quoted 11 lines · Mike Galbraith
Quoted 10 lines · Uwaysi Bin Kareem
I was just wondering, have you considered this?
If daemons are contributing to os-jitter, wouldn`t having them all on their own queue reduce jitter? So people could have the stuff like in Ubuntu they want, without affecting jitter, or needing stuff like Tiny Core, for tiny jitter?
So you get (simplified) something like mainapp - process1 in queue 2, mainapp - process2 in queue 2, mainapp - process 3 in queue 2, etc.
Quoted 9 lines
Quoted 1 line
Or is that already batch maybe, lol.
You could try
SCHED_AUTOGROUP, or create whatever task groups manually, or use systemd to do that for you. Like everything else having anything to do with scheduling, all are double edged swords, so may help, may hurt.-Mike
Actually I did achieve this with fifo-relatime. Low jitter OpenGL seems to be able to do, running the opengl app as realtime, with a low sched_rt_period_us value and a high sched_rt_runtime_us value.
Peace Be With You.
Ok, anyway realtime processes did not work quite as expected. ("overloaded" machine, even though cpu-time is only 10%). So I guess I have to enable cgroups and live with the overhead then.
If I set cpu-limits there, does that involve an absolute value, or is it normalized, so that even if I do 0.001% cpu for processes, they get all cpu, when there is nothing running?
Peace Be With You.
Quoted 7 lines · Uwaysi Bin Kareem
Ok, anyway realtime processes did not work quite as expected. ("overloaded" machine, even though cpu-time is only 10%). So I guess I have to enable cgroups and live with the overhead then.
If I set cpu-limits there, does that involve an absolute value, or is it normalized, so that even if I do 0.001% cpu for processes, they get all cpu, when there is nothing running?
See Documentation/cgroups. Between cgroups, cpusets, scheduler classes and priorities, you have heaping truckloads of control over what runs where and when. The missing element in your low jitter quest is a desktop and applications that were written for realtime performance.
-Mike