RDS: Change send lock from a mutex to a spinlock
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: Andy Grover <andy.grover@oracle.com>
This commit is contained in:
@@ -57,8 +57,8 @@ static const char *const rds_stat_names[] = {
|
||||
"recv_ping",
|
||||
"send_queue_empty",
|
||||
"send_queue_full",
|
||||
"send_sem_contention",
|
||||
"send_sem_queue_raced",
|
||||
"send_lock_contention",
|
||||
"send_lock_queue_raced",
|
||||
"send_immediate_retry",
|
||||
"send_delayed_retry",
|
||||
"send_drop_acked",
|
||||
|
Reference in New Issue
Block a user