summaryrefslogtreecommitdiffstats
path: root/net/rds/iw_cm.c
diff options
context:
space:
mode:
authorAndy Grover <andy.grover@oracle.com>2009-10-30 08:51:57 +0000
committerDavid S. Miller <davem@davemloft.net>2009-10-30 15:06:39 -0700
commitd521b63b27e3a397e0ef7ca86b6e813861083c83 (patch)
treed27bc29f9e0c7beb4b1e36b252ce71f6d008909f /net/rds/iw_cm.c
parent0514f8a9c0cbd26afa70dc56406cc0ee1e134dcf (diff)
downloadop-kernel-dev-d521b63b27e3a397e0ef7ca86b6e813861083c83.zip
op-kernel-dev-d521b63b27e3a397e0ef7ca86b6e813861083c83.tar.gz
RDS/IB+IW: Move recv processing to a tasklet
Move receive processing from event handler to a tasklet. This should help prevent hangcheck timer from going off when RDS is under heavy load. Signed-off-by: Andy Grover <andy.grover@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rds/iw_cm.c')
-rw-r--r--net/rds/iw_cm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
index a416b0d..394cf6b 100644
--- a/net/rds/iw_cm.c
+++ b/net/rds/iw_cm.c
@@ -696,6 +696,8 @@ int rds_iw_conn_alloc(struct rds_connection *conn, gfp_t gfp)
return -ENOMEM;
INIT_LIST_HEAD(&ic->iw_node);
+ tasklet_init(&ic->i_recv_tasklet, rds_iw_recv_tasklet_fn,
+ (unsigned long) ic);
mutex_init(&ic->i_recv_mutex);
#ifndef KERNEL_HAS_ATOMIC64
spin_lock_init(&ic->i_ack_lock);
OpenPOWER on IntegriCloud