• Andy Grover's avatar
    RDS: Change send lock from a mutex to a spinlock · 049ee3f5
    Andy Grover authored
    This change allows us to call rds_send_xmit() from a tasklet,
    which is crucial to our new operating model.
    
    * Change c_send_lock to a spinlock
    * Update stats fields "sem_" to "_lock"
    * Remove unneeded rds_conn_is_sending()
    
    About locking between shutdown and send -- send checks if the
    connection is up. Shutdown puts the connection into
    DISCONNECTING. After this, all threads entering send will exit
    immediately. However, a thread could be *in* send_xmit(), so
    shutdown acquires the c_send_lock to ensure everyone is out
    before proceeding with connection shutdown.
    Signed-off-by: default avatarAndy Grover <andy.grover@oracle.com>
    049ee3f5
send.c 30.5 KB