OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_74_1-96-g34b0fef

Gerrit Code Review
Tue, 11 May 2010 22:29:43 -0700 (PDT)

The following commit has been merged in the master branch:
commit 34b0fef60a555de11590631fce1e92454457fc72
Author: Jeffrey Altman <>
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
    Tested-by: Jeffrey Altman <>
    Reviewed-by: Dan Hyde <>
    Reviewed-by: Derrick Brashear <>
    Reviewed-by: Jeffrey Altman <>

 src/rx/rx.c        |  175 +++++++++++++++++++++++++++++++++++++++-------------
 src/rx/rx_packet.c |    8 +++
 2 files changed, 139 insertions(+), 44 deletions(-)

OpenAFS Master Repository