Re: [profile] amortize atomic hit count increments

From: Andrew Morton
Date: Tue Sep 14 2004 - 00:12:54 EST


William Lee Irwin III <wli@xxxxxxxxxxxxxx> wrote:
>
> read_proc_profile()
> does not flush the per-cpu hashtables because flushing may cause
> timeslice overrun on the systems where prof_buffer cacheline bounces
> are so problematic as to livelock the timer interrupt.

That's a bit of a problem, isn't it? As we can accumulate an arbitrarily
large number of hits within the hash table is it not possible that the
/proc/profile results could be grossly inaccurate?

If you had two front-ends per cpu to the profiling buffer then the CPU
which is running the /proc/profile read could tell all the other CPUs to
flip to their alternate buffer and can then perform accumulation at its
leisure.

How does oprofile get around this? I guess in most modes the CPUs are not
synchronised.

One wonders how long we should keep flogging the /prof/profile profiling
code. What systems are seeing this livelock?
-
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/