Re: [GIT PULL] cputime: Full dynticks task/cputime accounting v7

From: Christoph Lameter
Date: Mon Jan 28 2013 - 14:17:46 EST


On Mon, 28 Jan 2013, Frederic Weisbecker wrote:

> My last concern is the dependency on CONFIG_64BIT. We rely on cputime_t
> being u64 for reasonable nanosec granularity implementation. And therefore
> we need a single instruction fetch to read kernel cpustat for atomicity
> requirement against concurrent incrementation, which only 64 bit archs
> can provide.

Most x86 cpus support cmpxchg8b on 32bit which can be abused for
64 bit reads (see cmpxchg64 in cmpxchg_32.h). Simply do a cmpxchg with
zero and use whatever it returns.

A percpu version that uses the instruction is called
this_cpu_cmpxchg_double().

> There is just no emergency though as this new option depends on the context
> tracking subsystem that only x86-64 (and soon ppc64) implements yet. And
> this set is complex enough already. I think we can deal with that later.

Ok then this may not be that useful.

--
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/