Re: [ckrm-tech] [RFC 0/4] sched: Add CPU rate caps (improved)

From: Peter Williams
Date: Wed Jun 07 2006 - 08:57:43 EST


MAEDA Naoaki wrote:
Peter Williams wrote:

4. Overhead Measurements. To measure the implications for overhead
introduced by these patches kernbench was used on a dual 500Mhz
Centrino SMP system. Runs were done for a kernel without these
patches applied, one with the patches applied but no caps being used
and one with the patches applied and running kernbench with a soft cap
of zero (which would be inherited by all its children).

Average Optimal -j 8 Load Run:

Vanilla Patch Applied Soft Cap 0%

Elapsed Time 1056.1 (1.92) 1048.2 (0.62) 1064.1 (1.59)
User Time 1908.1 (1.09) 1895.2 (1.30) 1926.6 (1.39)
System Time 181.7 (0.60) 177.5 (0.74) 173.8 (1.07)
Percent CPU 197.6 (0.55) 197.0 (0) 197.0 (0)
Context Switches 49253.6 (136.31) 48881.4 (92.03) 92490.8 (163.71)
Sleeps 28038.8 (228.11) 28136.0 (250.65) 25769.4 (280.40)

I tried to run kernbench with hard cap, and then it spent a very
long time on "Cleaning souce tree..." phase. Because this phase
is not CPU hog, my expectation is that it act as without cap.

That can be reproduced by just running "make clean" on top of a
kernel source tree with hard cap.

% /usr/bin/time make clean
1.62user 0.29system 0:01.90elapsed 101%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+68539minor)pagefaults 0swaps

# Without cap, it returns almost immediately

% ~/withcap.sh -C 900 /usr/bin/time make clean
1.61user 0.29system 1:26.17elapsed 2%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+68537minor)pagefaults 0swaps

# With 90% hard cap, it takes about 1.5 minutes.

This is harder capping than I would expect. I'll look into probable causes. It could be caused by the simplification I made to the calculation of sinbin time.


% ~/withcap.sh -C 100 /usr/bin/time make clean
1.64user 0.34system 3:31.48elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+68538minor)pagefaults 0swaps

# It became worse with 10% hard cap.

And so it should.


% ~/withcap.sh -c 900 /usr/bin/time make clean
1.63user 0.28system 0:01.89elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+68537minor)pagefaults 0swaps

# It doesn't happen with soft cap.

That's because soft caps allow you to go over the cap if no other tasks want the CPU.

Thanks for the feedback,
Peter
--
Peter Williams pwil3058@xxxxxxxxxxxxxx

"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-
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/