On Tue, Sep 28, 2010 at 5:23 PM, Simon Wilkinson <[email protected]> wrote:
> The rx_stats variable has always been globally available to processes which 
> link with RX, and the structure definition is visible in rx.h. It is also 
> exported by our shared libraries. However, as part of work on improving the 
> performance of the RX layer, I'd like to move the statistics to using atomic 
> 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
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to