Comment 3 for bug 838811

Revision history for this message
Doug Smythies (dsmythies) wrote :

This issue is identical to bug # 513848. There was a patch listed there by Chase Douglas, but there has been some code changes since, and it would need to be changed to work (at least I couldn't get it to work). The root issue remains the same, for a tickless system any idle transition during the 10 tick grace period will clobber the real load information. If the process or idle frequency is high enough, then the load average will be reported as 0.00 whereas it might really be the number of CPUs - a small amount (I.E. for an 8 CPU system a real load of 7.99 will be reported as 0.00). I am proposing that what needs to be done is to add a handshake flag so that the fold of idle information during the 10 tick grace period is only executed once. This seems to work reasonably well in all of the tests I have done.

All of my work has been done on Ubuntu server 11.10 kernel 3.0.0-15. , however I have verified the same issue on 10.10. I have also looked at the 3.3-rc2 code from kernel.org, and while it is structured differenty (the code will be in kernel/sched/core.c instead of /kernel/sched.c), the code is basically the same, so it will have this problem. I have not looked at the code for 10.04 to see if it is same.

I have made a test program for this issue, and I will post it here.

I have a proposed solution to this issue, and I will post the code fragment for the calc_load area of kernel/sched.c here. I will also post diff output between the original code and my code (I do not know how to list the patch the same way Chase Doulglas did in bug # 513848)

On my web site, I have web notes on my investigation and test results: http://www.smythies.com/~doug/network/load_average/index.html
(no java, no ads, just hand written HTML 4.01 strict code, that passes the w3c validator. Oh, one css, that also passes the w3c css validator) I stuggle with launchpad, but I might try to post some graphical test results here.

Oh, by the way Bart Bobrowski has agreed to try my proposed patch.