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