The spec says: "This attribute indicates the current CPU load, as a number between 0.0 and 1.0."

My interpretation here is quite obvious:

1.0 = 100% = CPU at full capacity
0.0 = 0% = CPU idle

The spec doesn't say however how this information should be acquired. My point is, if each CPU has a task scheduled all the time during a time interval, this CPU is 100% busy.

The problems I see with what is implemented on this patch:
- It is not initializing `old_total_`, so the first result is not correct.
- If you call this function for the second time, after 1 hour, you will get an average of 2 snapshots of the CPU status in 1 hour, which is useless.
- The user will have to call this several times for sampling. I'm confident if you take the averages during 1 min, the result will be similar to getloadavg()
- But the fact that you are doing this sampling in user level will probably affect the results.
- Jiffies are a not good measurement in a tickless kernel because the interrupt interval is not constant.
- CPU is a state machine, roughly speaking it is either idle (0.0) or doing stuff (1.0). If you get snapshot within a very short interval, it is likely that you will get a very low or very high value.

So yes, I vote for #2 because it is simple, it is the most used method on Linux and the result is accurate enough.