[OpenAFS-devel] fileserver profiling
Tom Keiser
Tom Keiser <tkeiser@gmail.com>
Sun, 13 Mar 2005 15:10:22 -0500
On Sun, 13 Mar 2005 14:57:49 -0500, Kyle Moffett <mrmacman_g4@mac.com> wrote:
> On Mar 13, 2005, at 14:45, Tom Keiser wrote:
> > atomic_increment(&approx_invocations);
>
> Err, IIRC, atomic_increment automatically implies an extra
> read_barrier()
> and write_barrier(), no? From discussions on the LKML, I think atomic
> operations are more expensive than spinlocks on many architectures, and
> then you're back to the high overhead again. In any case, adding extra
> read_barriers() right after the first one does not linearly add
> overhead,
> most of the overhead is in the cache-flushing and queue-disruption
> effects of the first barrier.
>
yep. we could optimize it by making the invocation counters
thread-specific, but leaving the is_ok var global. assuming is_ok
doesn't share a cache line with things that change frequently, that
wouldn't be much of a problem...
--
Tom