[openib-general] FW: SDP problems with 64K page size

Roland Dreier rolandd at cisco.com
Thu Sep 22 11:58:47 PDT 2005


Jerome,

You could try this braindead port of Libor's patch and see if it works
for you.  I've not done anything beyond compile testing.

 - R.

Index: linux-kernel/infiniband/ulp/sdp/sdp_buff.c
===================================================================
--- linux-kernel/infiniband/ulp/sdp/sdp_buff.c	(revision 3522)
+++ linux-kernel/infiniband/ulp/sdp/sdp_buff.c	(working copy)
@@ -330,7 +330,7 @@ static struct sdpc_buff *sdp_buff_pool_a
 		return NULL;
 	}
 
-	buff->end         = buff->head + PAGE_SIZE;
+	buff->end         = buff->head + sdp_buff_pool_buff_size();
 	buff->data        = buff->head;
 	buff->tail        = buff->head;
 	buff->sge.lkey    = 0;
@@ -350,7 +350,7 @@ int sdp_buff_pool_init(void)
 	int result;
 
 	main_pool.pool_cache = kmem_cache_create("sdp_buff_pool",
-						  PAGE_SIZE,
+						  sdp_buff_pool_buff_size(),
 						  0, 0,
 						  NULL, NULL);
 	if (!main_pool.pool_cache) {
Index: linux-kernel/infiniband/ulp/sdp/sdp_buff.h
===================================================================
--- linux-kernel/infiniband/ulp/sdp/sdp_buff.h	(revision 3522)
+++ linux-kernel/infiniband/ulp/sdp/sdp_buff.h	(working copy)
@@ -101,6 +101,6 @@ struct sdpc_buff_root {
  */
 #define sdp_buff_q_size(pool) ((pool)->size)
 
-#define sdp_buff_pool_buff_size() PAGE_SIZE
+#define sdp_buff_pool_buff_size() min(PAGE_SIZE, 16384)
 
 #endif /* _SDP_BUFF_H */



More information about the general mailing list