[PATCH 0/2] cpustat: use atomic operations to read/update stats

From: Kevin Hilman
Date: Fri Feb 22 2013 - 00:56:55 EST


On 64-bit platforms, reads/writes of the various cpustat fields are
atomic due to native 64-bit loads/stores. However, on non 64-bit
platforms, reads/writes of the cpustat fields are not atomic and could
lead to inconsistent statistics.

This problem was originally reported by Frederic Weisbecker as a
64-bit limitation with the nsec granularity cputime accounting for
full dynticks, but then we realized that it's a problem that's been
around for awhile and not specific to the new cputime accounting.

This series fixes this by first converting all access to the cputime
fields to use accessor functions, and then converting the accessor
functions to use the atomic64 functions.

Implemented based on idea proposed by Frederic Weisbecker.

Kevin Hilman (2):
cpustat: use accessor functions for get/set/add
cpustat: convert to atomic operations

arch/s390/appldata/appldata_os.c | 16 +++++++--------
drivers/cpufreq/cpufreq_governor.c | 18 ++++++++---------
drivers/cpufreq/cpufreq_ondemand.c | 2 +-
drivers/macintosh/rack-meter.c | 6 +++---
fs/proc/stat.c | 40 +++++++++++++++++++-------------------
fs/proc/uptime.c | 2 +-
include/linux/kernel_stat.h | 11 ++++++++++-
kernel/sched/core.c | 12 +++++-------
kernel/sched/cputime.c | 29 +++++++++++++--------------
9 files changed, 70 insertions(+), 66 deletions(-)

--
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/