OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_74_1-96-g34b0fef
Gerrit Code Review
gerrit@openafs.org
Tue, 11 May 2010 22:29:43 -0700 (PDT)
The following commit has been merged in the master branch:
commit 34b0fef60a555de11590631fce1e92454457fc72
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date: Sat May 8 21:38:05 2010 -0400
Rx: prevent rx_rpc_stats mutex from being a global bottleneck
Prior to this patchset, the 'rx_rpc_stats' mutex was superior
to both the 'peer->peer_lock' and the 'rx_peerHashTable_lock'.
That meant that the 'rx_rpc_stats' was being held across many
operations that walk the peer hash table. For example,
rxi_ReapConnections, rx_disablePeerRPCStats, and rx_shutdown.
Since every RPC issues a call to rx_IncrementTimeAndCount, the
reap connections event would effectively bring all RPC processing
to a halt.
This patchset moves 'rx_rpc_stats' later in the hierarchy and
restructures rxi_ReapConnections, rx_disablePeerRPCStats, and
rx_shutdown so that not only doesn't the 'rx_rpc_stats' mutex
need to be held across the entire function but the
'rx_peerHashTable_lock' does not need to be held while complex
operations on the peer object are taking place.
rxi_ReceiveDebugPacket is also fixed to hold the rx_peerHashTable_lock
and peer_lock at appropriate times while completing its function.
Change-Id: I1a11798f1bb2a8f03316c6c455954bd6b8d1459b
Reviewed-on: http://gerrit.openafs.org/1928
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Dan Hyde <drh@umich.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
src/rx/rx.c | 175 +++++++++++++++++++++++++++++++++++++++-------------
src/rx/rx_packet.c | 8 +++
2 files changed, 139 insertions(+), 44 deletions(-)
--
OpenAFS Master Repository