RDS: Change send lock from a mutex to a spinlock
authorAndy Grover <andy.grover@oracle.com>
Wed, 24 Mar 2010 00:39:07 +0000 (17:39 -0700)
committerAndy Grover <andy.grover@oracle.com>
Thu, 9 Sep 2010 01:12:12 +0000 (18:12 -0700)
commit049ee3f500954176a87f22e6ee3e98aecb1b8958
tree5dfd8cf3e6d9a7a15e80f6ddee7f4ce7c4aa7a8c
parentf17a1a55fb672d7f64be7f2e940ef5669e5efa0a
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>
net/rds/connection.c
net/rds/rds.h
net/rds/send.c
net/rds/stats.c