rxstats: correctly distinguish client and server stats Commit d3eaa39da3693bba708fa2fa951568009e929550 'rx: Make the rx_call structure private' inadvertently caused all rxstats (aka rpcstats) to be recorded as client stats by hardcoding the value for isServer to 1. Therefore, when peer or process rxstats are enabled for a OpenAFS component, the rxstat_get_process and rxstat_get_peer utilities will erroneously report both client and server stats as "accessed as a client". This is particularly problematic for ubik VOTE_* and DISK_* RPC stats, for which a given ubik server may be both client and server over time. In this case, both client and server stats are conflated into the same "accessed as a client" counters. Instead, properly pass the value of isServer from rx_RecordCallStatistics through to rxi_IncrementTimeAndCount. Note to maintainers: This bug is only in master and all 1.8.x releases; no 1.6.x releases are affected. Note: Confusingly, isServer=1 indicates client stats and isServer=0 indicates server stats. However, this is a quirk of the original implementation and wire format of the RXSTATS_* RPCs and cannot be changed. isServer is actually shorthand for "remote is server"; thus all RPC client stubs record their rxstats with isServer == 1, and all RPC server stubs record their rxstats with isServer == 0. Change-Id: I2420f807e2c18ddfb9de7093a487825fa2d0a68e Reviewed-on: https://gerrit.openafs.org/14374 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
vos: restore status information to 'vos status' Commit d3eaa39da3693bba708fa2fa951568009e929550 'rx: Make the rx_call structure private' created accessors for several rx_call members. However, it simply #ifdef'd out the packet counters and timestamps reported by 'vos status' (AFSVol_Monitor). This is a regression for the 1.8.x 'vos status' command. Instead, supply an accessor so 'vos status' can again be used to monitor the progress of certain volume operations. FIXES 134856 Change-Id: I91f5831b21f128bd8e86db63387a454c9e57bcdf Reviewed-on: https://gerrit.openafs.org/13400 Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
rx: Move bytesSent + bytesRcvd into app only data The call->bytesSent and call->bytesRcvd counters are only manipulated by the application thread in running calls. Move them into the app-only section of the call structure so this is clear. Change-Id: Ib7929a8e34bcb70c8cb9c1f89544adce0d627299 Reviewed-on: http://gerrit.openafs.org/8288 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com> Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
rx: Use native 64bit data counters Modify the peer, call and rpc_stats structures to use native 64 bit types for the bytesSent and bytesRcvd data counters. All of our platforms support native 64bit quantities now, so there's absolutely no value in rolling our own. Change-Id: I7c51de73be17821c6472eea535c8476fe0d7a23e Reviewed-on: http://gerrit.openafs.org/7205 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Derrick Brashear <shadow@dementix.org>
rx: Make the rx_call structure private Hide the rx_call structure for public view. Provide accessors for those elements which are currently accessed by applications. Note that this change as it currently stands removes the visibility of the last sent time, and sequence number information, from the VolMonitor function. Change-Id: Ib25ab5635126f893ae43acb684d92a78278d6ca6 Reviewed-on: http://gerrit.openafs.org/6181 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com> Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>