ifpps: Correct calculation of median values for CPU load
commit22ed65468335a3d803b74db2d4ee39344a4543cc
authorTobias Klauser <tklauser@distanz.ch>
Sat, 13 Jul 2013 12:46:21 +0000 (13 14:46 +0200)
committerTobias Klauser <tklauser@distanz.ch>
Sat, 13 Jul 2013 12:46:21 +0000 (13 14:46 +0200)
tree856fa337b11d2d1f4d40e303a1574f92f8e84f14
parentdd123b0fb6af4909aa30940a8dc34661e8b1c420
ifpps: Correct calculation of median values for CPU load

ifpps always reported the same values for median as for average in the
CPU load fields (usr, sys, idle, iowait). This is of course incorrect.

The bug was due to 3 sub-problems:

- Summing up long double values (m_cpu_*) in an uint64_t (all)
- Not using %Lf (for long double) in mvwprintw()
- Explicitely use floating point division in MEDIAN_EVEN

Fix the bug by summing up in a separate accumulator of type long double,
use the correct format string for long double and divide by 2.0 in
MEDIAN_EVEN to force the result to be (long) double.

Reported-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
ifpps.c