]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert "net/rds: use different workqueue for base_conn"
authorWei Lin Guay <wei.lin.guay@oracle.com>
Thu, 10 Aug 2017 09:36:03 +0000 (11:36 +0200)
committerChuck Anderson <chuck.anderson@oracle.com>
Wed, 13 Sep 2017 04:52:20 +0000 (21:52 -0700)
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>
net/rds/connection.c
net/rds/ib.c
net/rds/rds.h
net/rds/threads.c

index 38036b995d8a035f33f362c7a734758e8a32d829..6e8f807694832e10672544db2daf55364fc47db7 100644 (file)
@@ -251,6 +251,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
        }
 
        conn->c_trans = trans;
+
        init_waitqueue_head(&conn->c_hs_waitq);
        for (i = 0; i < npaths; i++) {
                struct rds_conn_path *cp;
@@ -262,7 +263,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
                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) {
index e84143bbf62d2f420dd3339b704f90ac0d15937e..f1df0a9659210304767f8ef0dff52389517d40bd 100644 (file)
@@ -2100,8 +2100,6 @@ static void rds_ib_unregister_client(void)
        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);
 }
 
index 19d6fffedbf3f52c3a769a1aed0410a3bab55d25..d63fd7e5d24f8d14531eb71e5c69ace794465c1d 100644 (file)
@@ -1141,7 +1141,6 @@ extern unsigned int  rds_sysctl_shutdown_trace_end_time;
 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 *);
index bcf240e3dea1911559b0c04fab8302ff8881f3cc..7071be360d7331a6b9042c2ee94216e7ae819f4b 100644 (file)
@@ -74,8 +74,6 @@ MODULE_PARM_DESC(rds_conn_hb_timeout, " Connection heartbeat timeout");
  */
 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);
 
@@ -365,7 +363,6 @@ void rds_shutdown_worker(struct work_struct *work)
 void rds_threads_exit(void)
 {
        destroy_workqueue(rds_wq);
-       destroy_workqueue(rds_tos_wq);
        destroy_workqueue(rds_local_wq);
 }
 
@@ -375,10 +372,6 @@ int rds_threads_init(void)
        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;