On Fri, 2011-09-23 at 19:20 -0300, Glauber Costa wrote:+static inline void task_cgroup_account_field(struct task_struct *p,
+ cputime64_t tmp, int index)
+{
+ struct kernel_stat *kstat;
+ struct task_group *tg = task_group(p);
+
+ do {
+ kstat = this_cpu_ptr(tg->cpustat);
+ kstat->cpustat[index] = cputime64_add(kstat->cpustat[index],
+ tmp);
So aside from the cputime64_t nonsense you could actually write that as:
__this_cpu_add(tg->cpustat[index], tmp);
which should yield better asm I think, a quick grep seems to confirm
cputime64_t is indeed a u64 all over so its fair to just ignore that.