Skip to contentSkip to conversation

knfsd: initialize RDMA transport in sunrpc

RFC PATCH In review Tom Tucker 3 participants 5 messages May 18, 2007

Subsystems (3)
lore
Share & tools
lore

Tom Tucker

author
#0 lore raw

RFC PATCH 3/15 knfsd: initialize RDMA transport in sunrpc

Add calls to the svc_rdma initialization and cleanup routines to the sunrpc module init logic.

---

 net/sunrpc/sunrpc_syms.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
net/sunrpc/sunrpc_syms.c +9 -1
index 43ecf62..16a50c9 100644
@@ -20,7 +20,9 @@ #include <linux/sunrpc/svcsock.h>
 #include <linux/sunrpc/auth.h>
 #include <linux/workqueue.h>
 #include <linux/sunrpc/rpc_pipe_fs.h>
-
+#ifdef CONFIG_NFSD_RDMA
+#include <linux/sunrpc/svc_rdma.h>
+#endif
 
 /* RPC scheduler */
 EXPORT_SYMBOL(rpc_execute);
@@ -158,6 +160,9 @@ #endif
 	cache_register(&ip_map_cache);
 	cache_register(&unix_gid_cache);
 	init_socket_xprt();
+#ifdef CONFIG_NFSD_RDMA
+	err = svc_rdma_init();
+#endif
 out:
 	return err;
 }
@@ -175,6 +180,9 @@ cleanup_sunrpc(void)
 #ifdef RPC_DEBUG
 	rpc_unregister_sysctl();
 #endif
+#ifdef CONFIG_NFSD_RDMA
+	svc_rdma_cleanup();
+#endif
 #ifdef CONFIG_PROC_FS
 	rpc_proc_exit();
 #endif

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

#1 lore raw
Quoted 35 lines · Tom Tucker

Add calls to the svc_rdma initialization and cleanup routines to the sunrpc module init logic.

---

 net/sunrpc/sunrpc_syms.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
net/sunrpc/sunrpc_syms.c +6 -1
index 43ecf62..16a50c9 100644
@@ -20,7 +20,9 @@ #include <linux/sunrpc/svcsock.h>
 #include <linux/sunrpc/auth.h>
 #include <linux/workqueue.h>
 #include <linux/sunrpc/rpc_pipe_fs.h>
-
+#ifdef CONFIG_NFSD_RDMA
+#include <linux/sunrpc/svc_rdma.h>
+#endif
 
 /* RPC scheduler */
 EXPORT_SYMBOL(rpc_execute);
@@ -158,6 +160,9 @@ #endif
 	cache_register(&ip_map_cache);
 	cache_register(&unix_gid_cache);
 	init_socket_xprt();
+#ifdef CONFIG_NFSD_RDMA
+	err = svc_rdma_init();
+#endif
 out:
 	return err;
 }

net/sunrpc/sunrpc_syms.c cleanup_sunrpc(void) · line 188

Quoted 9 lines
net/sunrpc/sunrpc_syms.c +3 -0
@@ -175,6 +180,9 @@ cleanup_sunrpc(void)
 #ifdef RPC_DEBUG
 	rpc_unregister_sysctl();
 #endif
+#ifdef CONFIG_NFSD_RDMA
+	svc_rdma_cleanup();
+#endif
 #ifdef CONFIG_PROC_FS
 	rpc_proc_exit();
 #endif

Hmm... You really want to reorder this patch. AFAICS you haven't defined either svc_rdma.h or svc_rdma_*().

Please also convert the above to avoid inlined #ifdef/#endif by defining inlined dummy versions of svc_rdma_cleanup/svc_rdma_init inside svc_rdma.h:

#ifdef CONFIG_NFSD_RDMA
void svc_rdma_cleanup(void);
#else
static inline void svc_rdma_cleanup(void)
{
}
#endif

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

author
#2 lore raw
Quoted 53 lines · Trond Myklebust
Quoted 35 lines · Tom Tucker

Add calls to the svc_rdma initialization and cleanup routines to the sunrpc module init logic.

---

 net/sunrpc/sunrpc_syms.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
net/sunrpc/sunrpc_syms.c +6 -1
index 43ecf62..16a50c9 100644
@@ -20,7 +20,9 @@ #include <linux/sunrpc/svcsock.h>
 #include <linux/sunrpc/auth.h>
 #include <linux/workqueue.h>
 #include <linux/sunrpc/rpc_pipe_fs.h>
-
+#ifdef CONFIG_NFSD_RDMA
+#include <linux/sunrpc/svc_rdma.h>
+#endif
 
 /* RPC scheduler */
 EXPORT_SYMBOL(rpc_execute);
@@ -158,6 +160,9 @@ #endif
 	cache_register(&ip_map_cache);
 	cache_register(&unix_gid_cache);
 	init_socket_xprt();
+#ifdef CONFIG_NFSD_RDMA
+	err = svc_rdma_init();
+#endif
 out:
 	return err;
 }

net/sunrpc/sunrpc_syms.c cleanup_sunrpc(void) · line 188

Quoted 9 lines
net/sunrpc/sunrpc_syms.c +3 -0
@@ -175,6 +180,9 @@ cleanup_sunrpc(void)
 #ifdef RPC_DEBUG
 	rpc_unregister_sysctl();
 #endif
+#ifdef CONFIG_NFSD_RDMA
+	svc_rdma_cleanup();
+#endif
 #ifdef CONFIG_PROC_FS
 	rpc_proc_exit();
 #endif

Hmm... You really want to reorder this patch. AFAICS you haven't defined either svc_rdma.h or svc_rdma_*().

Please also convert the above to avoid inlined #ifdef/#endif by defining inlined dummy versions of svc_rdma_cleanup/svc_rdma_init inside svc_rdma.h:

Quoted 7 lines

#ifdef CONFIG_NFSD_RDMA
void svc_rdma_cleanup(void);
#else
static inline void svc_rdma_cleanup(void)
{
}
#endif

Ok, I'll add this to the svc_rdma.h file. Thanks,

Quoted 3 lines

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

#3 lore raw
In reply to Tom Tucker

As part of the client side transport switch, I constructed a transport "register" and "unregister" interface so that when a transport module is loaded, it's init routine is invoked automatically, and likewise when it is unloaded its cleanup routine is automatically invoked.

I'd like to see the same here. I don't think we want to create a situation where you have to make source code changes in order to add new transport capabilities. Especially the distributors would be allergic to such a constraint.

Please consider this change while going about the process of integrating the server-side transport switch with your RDMA transport.

Quoted 47 lines · Tom Tucker

Add calls to the svc_rdma initialization and cleanup routines to the sunrpc module init logic.

---

 net/sunrpc/sunrpc_syms.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
net/sunrpc/sunrpc_syms.c +9 -2
index 43ecf62..16a50c9 100644
@@ -20,7 +20,9 @@ #include <linux/sunrpc/svcsock.h>
 #include <linux/sunrpc/auth.h>
 #include <linux/workqueue.h>
 #include <linux/sunrpc/rpc_pipe_fs.h>
-
+#ifdef CONFIG_NFSD_RDMA
+#include <linux/sunrpc/svc_rdma.h>
+#endif
 
 /* RPC scheduler */
 EXPORT_SYMBOL(rpc_execute);
@@ -158,6 +160,9 @@ #endif
 	cache_register(&ip_map_cache);
 	cache_register(&unix_gid_cache);
 	init_socket_xprt();
+#ifdef CONFIG_NFSD_RDMA
+	err = svc_rdma_init();
+#endif
 out:
 	return err;
 }
@@ -175,6 +180,9 @@ cleanup_sunrpc(void)
 #ifdef RPC_DEBUG
 	rpc_unregister_sysctl();
 #endif
+#ifdef CONFIG_NFSD_RDMA
+	svc_rdma_cleanup();
+#endif
 #ifdef CONFIG_PROC_FS
 	rpc_proc_exit();
 #endif
 
 
-------------------------------------------------------------------------
Quoted 7 lines

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

begin:vcard
fn:Chuck Lever
n:Lever;Chuck
org:Oracle Corporation;Corporate Architecture: Linux Projects Group adr:;;1015 Granger Avenue;Ann Arbor;MI;48104;USA title:Principal Member of Staff
tel;work:+1 248 614 5091
x-mozilla-html:FALSE
url:http://oss.oracle.com/~cel/
version:2.1
end:vcard

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

author
#4 lore raw
Quoted 5 lines · Chuck Lever

As part of the client side transport switch, I constructed a transport "register" and "unregister" interface so that when a transport module is loaded, it's init routine is invoked automatically, and likewise when it is unloaded its cleanup routine is automatically invoked.

Quoted 7 lines

I'd like to see the same here. I don't think we want to create a situation where you have to make source code changes in order to add new transport capabilities. Especially the distributors would be allergic to such a constraint.

Please consider this change while going about the process of integrating the server-side transport switch with your RDMA transport.

Agreed.

Quoted 48 lines
Quoted 46 lines · Tom Tucker

Add calls to the svc_rdma initialization and cleanup routines to the sunrpc module init logic.

---

 net/sunrpc/sunrpc_syms.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
net/sunrpc/sunrpc_syms.c +9 -1
index 43ecf62..16a50c9 100644
@@ -20,7 +20,9 @@ #include <linux/sunrpc/svcsock.h>
 #include <linux/sunrpc/auth.h>
 #include <linux/workqueue.h>
 #include <linux/sunrpc/rpc_pipe_fs.h>
-
+#ifdef CONFIG_NFSD_RDMA
+#include <linux/sunrpc/svc_rdma.h>
+#endif
 
 /* RPC scheduler */
 EXPORT_SYMBOL(rpc_execute);
@@ -158,6 +160,9 @@ #endif
 	cache_register(&ip_map_cache);
 	cache_register(&unix_gid_cache);
 	init_socket_xprt();
+#ifdef CONFIG_NFSD_RDMA
+	err = svc_rdma_init();
+#endif
 out:
 	return err;
 }
@@ -175,6 +180,9 @@ cleanup_sunrpc(void)
 #ifdef RPC_DEBUG
 	rpc_unregister_sysctl();
 #endif
+#ifdef CONFIG_NFSD_RDMA
+	svc_rdma_cleanup();
+#endif
 #ifdef CONFIG_PROC_FS
 	rpc_proc_exit();
 #endif
Quoted 9 lines
Quoted 8 lines

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs