Comment 43 for bug 513848

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Stable Release Update Justification:

Impact of bug: On low load systems with specific work load characteristics the load average may not be representative of the real load. Given a specific test case it is possible to load a system with NR_CPUS number of tasks and yet have a load avg of 0.00, though this is unlikely to occur in real work loads.

How addressed: The attached patch reworks the load accounting mechanism in the kernel scheduler. It ensures that the accounting is strictly dependent on the time (i.e. snapshot taken every 5 seconds) and the number of runnable and uninterruptible tasks at that given time. Previously, the accounting also depended on whether a cpu goes idle shortly after the 5 second snapshot.

Reproduction: See attached reproduction test case. Run it once on a non-loaded system (boot to rescue mode works well). Top will report the cpu usage at 90%, but uptime will report a load avg near 0.00 instead of at least 0.90 as expected.

Regression potential: The patch has been received well from senior Ubuntu kernel team members and some of the upstream kernel maintainers on lkml. For this reason it is assumed to be a good fix for this issue. The only code path touched by this patch involves the load avg accounting, so potential regressions could include incorrect load avg and/or some unforeseen general bug like a null dereference. However, the likelihood of either is minimal due to proper and thorough patch review.