Re: fair group scheduler not so fair?

From: Chris Friesen
Date: Thu May 29 2008 - 17:31:00 EST


Srivatsa Vaddagiri wrote:

In summary, can you do this before running your tests:

1. Apply updated patch below on top of 2.6.26-rc3 + Peter's patches
(http://programming.kicks-ass.net/kernel-patches/sched-smp-group-fixes/)

I updated with the old set of patches you sent me, plus your patch.

2. Setup test env as below:

Done.

Overall the group scheduler results look better, but I'm seeing an odd scenario within a single group where sometimes I get a 67/67/66 breakdown but sometimes it gives 100/50/50.

Also, although the long-term results are good, the shorter-term fairness isn't great. Is there a tuneable that would allow for a tradeoff between performance and fairness? I have people that are looking for within 4% fairness over a 1sec interval.


Initially I tried a simple setup with three hogs all in the default "sys" group. Over multiple retries using 10-sec intervals, sometimes it gave roughly 67% for each task, other times it settled into a 100/50/50 split that remained stable over time.

3 tasks in sys
2471 cfriesen 20 0 3800 392 336 R 99.9 0.0 0:29.97 cat
2470 cfriesen 20 0 3800 392 336 R 50.3 0.0 0:17.83 cat
2469 cfriesen 20 0 3800 392 336 R 49.6 0.0 0:17.96 cat

retry
2475 cfriesen 20 0 3800 392 336 R 68.3 0.0 0:28.46 cat
2476 cfriesen 20 0 3800 392 336 R 67.3 0.0 0:28.24 cat
2474 cfriesen 20 0 3800 392 336 R 64.3 0.0 0:28.73 cat

2476 cfriesen 20 0 3800 392 336 R 67.1 0.0 0:41.79 cat
2474 cfriesen 20 0 3800 392 336 R 66.6 0.0 0:41.96 cat
2475 cfriesen 20 0 3800 392 336 R 66.1 0.0 0:41.67 cat

retry
2490 cfriesen 20 0 3800 392 336 R 99.7 0.0 0:22.23 cat
2489 cfriesen 20 0 3800 392 336 R 49.9 0.0 0:21.02 cat
2491 cfriesen 20 0 3800 392 336 R 49.9 0.0 0:13.94 cat


With three groups, one task in each, I tried both 10 and 60 second intervals. The longer interval looked better but was still up to 0.8% off:
10-sec
2490 cfriesen 20 0 3800 392 336 R 68.9 0.0 1:35.13 cat
2491 cfriesen 20 0 3800 392 336 R 65.8 0.0 1:04.65 cat
2489 cfriesen 20 0 3800 392 336 R 64.5 0.0 1:26.48 cat

60-sec
2490 cfriesen 20 0 3800 392 336 R 67.5 0.0 3:19.85 cat
2491 cfriesen 20 0 3800 392 336 R 66.3 0.0 2:48.93 cat
2489 cfriesen 20 0 3800 392 336 R 66.2 0.0 3:10.86 cat


Finally, a more complicated scenario. three tasks in A, two in B, and one in C. The 60-sec trial was up to 0.8 off, while a 3-second trial (just for fun) was 8.5% off.

60-sec
2491 cfriesen 20 0 3800 392 336 R 65.9 0.0 5:06.69 cat
2499 cfriesen 20 0 3800 392 336 R 33.6 0.0 0:55.35 cat
2490 cfriesen 20 0 3800 392 336 R 33.5 0.0 4:47.94 cat
2497 cfriesen 20 0 3800 392 336 R 22.6 0.0 0:38.76 cat
2489 cfriesen 20 0 3800 392 336 R 22.2 0.0 4:28.03 cat
2498 cfriesen 20 0 3800 392 336 R 22.2 0.0 0:35.13 cat

3-sec
2491 cfriesen 20 0 3800 392 336 R 58.2 0.0 13:29.60 cat
2490 cfriesen 20 0 3800 392 336 R 34.8 0.0 9:07.73 cat
2499 cfriesen 20 0 3800 392 336 R 31.0 0.0 5:15.69 cat
2497 cfriesen 20 0 3800 392 336 R 29.4 0.0 3:37.25 cat
2489 cfriesen 20 0 3800 392 336 R 23.3 0.0 7:26.25 cat
2498 cfriesen 20 0 3800 392 336 R 23.0 0.0 3:33.24 cat


Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/