This latest log confirms my theory. There are only two situations where the calc_load_tasks counter is incremented: once when each process updates the counter every 5 seconds, and when a processor switches from an uninterruptible task to the idle task. The first increment is always matched with a decrement in the log, while the second only sometimes matches with a decrement. When there isn't a matching decrement due to uninterruptible tasks is when we see the load avg calculated with a non-zero calc_load_tasks.
@tgabi:
This latest log confirms my theory. There are only two situations where the calc_load_tasks counter is incremented: once when each process updates the counter every 5 seconds, and when a processor switches from an uninterruptible task to the idle task. The first increment is always matched with a decrement in the log, while the second only sometimes matches with a decrement. When there isn't a matching decrement due to uninterruptible tasks is when we see the load avg calculated with a non-zero calc_load_tasks.
This may be seen in Karmic but not Jaunty due to this commit: http:// git.kernel. org/?p= linux/kernel/ git/torvalds/ linux-2. 6.git;a= commitdiff; h=dce48a84adf18 06676319f6f480e 30a6daa012f9. The commit reworks the load avg calculation code, and seems to introduce this regression.