summaryrefslogtreecommitdiffstats
path: root/net/rds/rds.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2010-04-21 22:09:28 +0200
committerAndy Grover <andy.grover@oracle.com>2010-09-09 03:12:27 +0200
commitc83188dcd76b1f0c17c31b4bbd8de57c634b19f8 (patch)
tree1d66c7996693e36d88f9fa7bebcb28281612675d /net/rds/rds.h
parentrds: switch to rwlock on bind_lock (diff)
downloadlinux-c83188dcd76b1f0c17c31b4bbd8de57c634b19f8.tar.xz
linux-c83188dcd76b1f0c17c31b4bbd8de57c634b19f8.zip
rds: per-rm flush_wait waitq
This removes a global waitqueue used to wait for rds messages and replaces it with a waitqueue inside the rds_message struct. The global waitqueue turns into a global lock and significantly bottlenecks operations on large machines. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'net/rds/rds.h')
-rw-r--r--net/rds/rds.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rds/rds.h b/net/rds/rds.h
index b57cb50c1f22..c22bd7b49460 100644
--- a/net/rds/rds.h
+++ b/net/rds/rds.h
@@ -301,6 +301,8 @@ struct rds_message {
* -> rs->rs_lock
*/
spinlock_t m_rs_lock;
+ wait_queue_head_t m_flush_wait;
+
struct rds_sock *m_rs;
/* cookie to send to remote, in rds header */