This reverts commit
ad7312bb8b8e ("net/rds: use different workqueue for
base_conn"). The RDS path record caching will be replaced by ibacm. Thus,
all the TOS connections do not rely on its base connection to perform SA
query. As a result, RDS does not need a separate "priority" workqueue for
the base connection.
Orabug:
26497333
Signed-off-by: Wei Lin Guay <wei.lin.guay@oracle.com>
Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Avinash Repaka <avinash.repaka@oracle.com>
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
}
conn->c_trans = trans;
+
init_waitqueue_head(&conn->c_hs_waitq);
for (i = 0; i < npaths; i++) {
struct rds_conn_path *cp;
if (conn->c_loopback)
cp->cp_wq = rds_local_wq;
else
- cp->cp_wq = tos ? rds_wq : rds_tos_wq;
+ cp->cp_wq = rds_wq;
}
ret = trans->conn_alloc(conn, gfp);
if (ret) {
ib_unregister_client(&rds_ib_client);
/* wait for rds_ib_dev_free() to complete */
flush_workqueue(rds_ip_wq);
- flush_workqueue(rds_wq);
- flush_workqueue(rds_tos_wq);
flush_workqueue(rds_local_wq);
}
int rds_threads_init(void);
void rds_threads_exit(void);
extern struct workqueue_struct *rds_wq;
-extern struct workqueue_struct *rds_tos_wq;
extern struct workqueue_struct *rds_local_wq;
void rds_queue_reconnect(struct rds_conn_path *cp, int reason);
void rds_connect_worker(struct work_struct *);
*/
struct workqueue_struct *rds_wq;
EXPORT_SYMBOL_GPL(rds_wq);
-struct workqueue_struct *rds_tos_wq;
-EXPORT_SYMBOL_GPL(rds_tos_wq);
struct workqueue_struct *rds_local_wq;
EXPORT_SYMBOL_GPL(rds_local_wq);
void rds_threads_exit(void)
{
destroy_workqueue(rds_wq);
- destroy_workqueue(rds_tos_wq);
destroy_workqueue(rds_local_wq);
}
if (!rds_wq)
return -ENOMEM;
- rds_tos_wq = create_singlethread_workqueue("krdsd_tos");
- if (!rds_wq)
- return -ENOMEM;
-
rds_local_wq = create_singlethread_workqueue("krdsd_local");
if (!rds_local_wq)
return -ENOMEM;