[OpenAFS-devel] Removing the rx_stats export from RX

Tom Keiser tkeiser@sinenomine.net
Tue, 28 Sep 2010 17:40:49 -0400


On Tue, Sep 28, 2010 at 5:23 PM, Simon Wilkinson <sxw@inf.ed.ac.uk> wrote:
> The rx_stats variable has always been globally available to processes whi=
ch link with RX, and the structure definition is visible in rx.h. It is als=
o exported by our shared libraries. However, as part of work on improving t=
he performance of the RX layer, I'd like to move the statistics to using at=
omic counters. In order to catch bad usage of these, I'd like to change

Hi Simon,

Any particular reason to use atomics as opposed to, say, thread-local
stats that are aggregated (non-coherently, e.g. using just atomic
reads with, perhaps, a store-to-read fence prior to the atomic reads)
on demand, a la rxkad_stats?  Avoiding fences and not having global
rx_stats cache line(s) bouncing across the ccNUMA interconnect on
every op would be a huge win on big machines, both in terms of latency
and interconnect utilization.  Furthermore, given that total ordering
is undefined on a ccNUMA, doing so doesn't even seem to be a
"correctness" loss to me...

Regards,

-Tom