Signed-off-by: Goldwyn Rodrigues <[email protected]>
---
 .../nfsrdma_0000_sysctl-changes.patch              |  242 ++++++++++++++++++++
 1 files changed, 242 insertions(+), 0 deletions(-)
 create mode 100644 
kernel_patches/backport/3.0_sles11sp2/nfsrdma_0000_sysctl-changes.patch

diff --git 
a/kernel_patches/backport/3.0_sles11sp2/nfsrdma_0000_sysctl-changes.patch 
b/kernel_patches/backport/3.0_sles11sp2/nfsrdma_0000_sysctl-changes.patch
new file mode 100644
index 0000000..f243b63
--- /dev/null
+++ b/kernel_patches/backport/3.0_sles11sp2/nfsrdma_0000_sysctl-changes.patch
@@ -0,0 +1,242 @@
+From: Goldwyn Rodrigues <[email protected]>
+Subject: nfsrdma - sysctl usage changes
+
+Index: ofa_kernel-1.5.4.1/net/sunrpc/xprtrdma/svc_rdma.c
+===================================================================
+--- ofa_kernel-1.5.4.1.orig/net/sunrpc/xprtrdma/svc_rdma.c
++++ ofa_kernel-1.5.4.1/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -80,8 +80,7 @@ struct kmem_cache *svc_rdma_ctxt_cachep;
+  * current value.
+  */
+ static int read_reset_stat(ctl_table *table, int write,
+-                         struct file *filp, void __user *buffer, size_t *lenp,
+-                         loff_t *ppos)
++                         void __user *buffer, size_t *lenp, loff_t *ppos)
+ {
+       atomic_t *stat = (atomic_t *)table->data;
+ 
+@@ -121,7 +120,6 @@ static ctl_table svcrdma_parm_table[] =
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_max_requests,
+               .extra2         = &max_max_requests
+       },
+@@ -131,7 +129,6 @@ static ctl_table svcrdma_parm_table[] =
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_max_inline,
+               .extra2         = &max_max_inline
+       },
+@@ -141,7 +138,6 @@ static ctl_table svcrdma_parm_table[] =
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_ord,
+               .extra2         = &max_ord,
+       },
+@@ -209,9 +205,7 @@ static ctl_table svcrdma_parm_table[] =
+               .mode           = 0644,
+               .proc_handler   = &read_reset_stat,
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ static ctl_table svcrdma_table[] = {
+@@ -220,21 +214,16 @@ static ctl_table svcrdma_table[] = {
+               .mode           = 0555,
+               .child          = svcrdma_parm_table
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ static ctl_table svcrdma_root_table[] = {
+       {
+-              .ctl_name       = CTL_SUNRPC,
+               .procname       = "sunrpc",
+               .mode           = 0555,
+               .child          = svcrdma_table
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ void svc_rdma_cleanup(void)
+Index: ofa_kernel-1.5.4.1/net/sunrpc/xprtrdma/transport.c
+===================================================================
+--- ofa_kernel-1.5.4.1.orig/net/sunrpc/xprtrdma/transport.c
++++ ofa_kernel-1.5.4.1/net/sunrpc/xprtrdma/transport.c
+@@ -86,79 +86,63 @@ static struct ctl_table_header *sunrpc_t
+ 
+ static ctl_table xr_tunables_table[] = {
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_slot_table_entries",
+               .data           = &xprt_rdma_slot_table_entries,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_slot_table_size,
+               .extra2         = &max_slot_table_size
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_max_inline_read",
+               .data           = &xprt_rdma_max_inline_read,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+-              .strategy       = &sysctl_intvec,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_max_inline_write",
+               .data           = &xprt_rdma_max_inline_write,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+-              .strategy       = &sysctl_intvec,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_inline_write_padding",
+               .data           = &xprt_rdma_inline_write_padding,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &zero,
+               .extra2         = &max_padding,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_memreg_strategy",
+               .data           = &xprt_rdma_memreg_strategy,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_memreg,
+               .extra2         = &max_memreg,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_pad_optimize",
+               .data           = &xprt_rdma_pad_optimize,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ static ctl_table sunrpc_table[] = {
+       {
+-              .ctl_name       = CTL_SUNRPC,
+               .procname       = "sunrpc",
+               .mode           = 0555,
+               .child          = xr_tunables_table
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ #endif
+@@ -168,47 +152,24 @@ static struct rpc_xprt_ops xprt_rdma_pro
+ static void
+ xprt_rdma_format_addresses(struct rpc_xprt *xprt)
+ {
+-      struct sockaddr_in *addr = (struct sockaddr_in *)
+-                                      &rpcx_to_rdmad(xprt).addr;
+-      char *buf;
+-
+-      buf = kzalloc(20, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 20, "%pI4", &addr->sin_addr.s_addr);
+-      xprt->address_strings[RPC_DISPLAY_ADDR] = buf;
+-
+-      buf = kzalloc(8, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 8, "%u", ntohs(addr->sin_port));
+-      xprt->address_strings[RPC_DISPLAY_PORT] = buf;
++      struct sockaddr *sap = (struct sockaddr *)
++              &rpcx_to_rdmad(xprt).addr;
++      struct sockaddr_in *sin = (struct sockaddr_in *)sap;
++      char buf[64];
++
++      (void)rpc_ntop(sap, buf, sizeof(buf));
++      xprt->address_strings[RPC_DISPLAY_ADDR] = kstrdup(buf, GFP_KERNEL);
++
++      snprintf(buf, sizeof(buf), "%u", rpc_get_port(sap));
++      xprt->address_strings[RPC_DISPLAY_PORT] = kstrdup(buf, GFP_KERNEL);
+ 
+       xprt->address_strings[RPC_DISPLAY_PROTO] = "rdma";
+ 
+-      buf = kzalloc(48, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 48, "addr=%pI4 port=%u proto=%s",
+-                      &addr->sin_addr.s_addr,
+-                      ntohs(addr->sin_port), "rdma");
+-      xprt->address_strings[RPC_DISPLAY_ALL] = buf;
+-
+-      buf = kzalloc(10, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 10, "%02x%02x%02x%02x",
+-                      NIPQUAD(addr->sin_addr.s_addr));
+-      xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = buf;
+-
+-      buf = kzalloc(8, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 8, "%4hx", ntohs(addr->sin_port));
+-      xprt->address_strings[RPC_DISPLAY_HEX_PORT] = buf;
+-
+-      buf = kzalloc(30, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 30, "%pI4.%u.%u",
+-                      &addr->sin_addr.s_addr,
+-                      ntohs(addr->sin_port) >> 8,
+-                      ntohs(addr->sin_port) & 0xff);
+-      xprt->address_strings[RPC_DISPLAY_UNIVERSAL_ADDR] = buf;
++      snprintf(buf, sizeof(buf), "%08x", ntohl(sin->sin_addr.s_addr));
++      xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = kstrdup(buf, GFP_KERNEL);
++
++      snprintf(buf, sizeof(buf), "%4hx", rpc_get_port(sap));
++      xprt->address_strings[RPC_DISPLAY_HEX_PORT] = kstrdup(buf, GFP_KERNEL);
+ 
+       /* netid */
+       xprt->address_strings[RPC_DISPLAY_NETID] = "rdma";
+@@ -343,7 +304,6 @@ xprt_setup_rdma(struct xprt_create *args
+       /* 60 second timeout, no retries */
+       xprt->timeout = &xprt_rdma_default_timeout;
+       xprt->bind_timeout = (60U * HZ);
+-      xprt->connect_timeout = (60U * HZ);
+       xprt->reestablish_timeout = (5U * HZ);
+       xprt->idle_timeout = (5U * 60 * HZ);
+ 
+@@ -715,7 +675,7 @@ xprt_rdma_send_request(struct rpc_task *
+       if (rpcrdma_ep_post(&r_xprt->rx_ia, &r_xprt->rx_ep, req))
+               goto drop_connection;
+ 
+-      task->tk_bytes_sent += rqst->rq_snd_buf.len;
++      rqst->rq_xmit_bytes_sent += rqst->rq_snd_buf.len;
+       rqst->rq_bytes_sent = 0;
+       return 0;
+ 
-- 
1.7.7


-- 
Goldwyn
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to