]> err.no Git - linux-2.6/commitdiff
[I/OAT]: Add a sysctl for tuning the I/OAT offloaded I/O threshold
authorChris Leech <christopher.leech@intel.com>
Wed, 24 May 2006 01:02:55 +0000 (18:02 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 18 Jun 2006 04:25:54 +0000 (21:25 -0700)
Any socket recv of less than this ammount will not be offloaded

Signed-off-by: Chris Leech <christopher.leech@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/sysctl.h
include/net/tcp.h
net/core/user_dma.c
net/ipv4/sysctl_net_ipv4.c

index 76eaeff76f82dc03f3f42d33d3f3a13983268e9e..cd9e7c0825ad54f24b312c06d8f119d7b8f7d445 100644 (file)
@@ -403,6 +403,7 @@ enum
        NET_TCP_MTU_PROBING=113,
        NET_TCP_BASE_MSS=114,
        NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115,
+       NET_TCP_DMA_COPYBREAK=116,
 };
 
 enum {
index 578cccf275d3bceb7795470072e0da2dd72881cf..f1f472746e6cbb8de27adef75f40ba4613937b40 100644 (file)
@@ -219,6 +219,7 @@ extern int sysctl_tcp_adv_win_scale;
 extern int sysctl_tcp_tw_reuse;
 extern int sysctl_tcp_frto;
 extern int sysctl_tcp_low_latency;
+extern int sysctl_tcp_dma_copybreak;
 extern int sysctl_tcp_nometrics_save;
 extern int sysctl_tcp_moderate_rcvbuf;
 extern int sysctl_tcp_tso_win_divisor;
index 9eee91bcbf3f9f30d903dc9a49533e4e588752ef..b7c98dbcdb81102ccd50e0d3f354294eae6c6919 100644 (file)
 #include <linux/rtnetlink.h> /* for BUG_TRAP */
 #include <net/tcp.h>
 
+#define NET_DMA_DEFAULT_COPYBREAK 4096
+
+int sysctl_tcp_dma_copybreak = NET_DMA_DEFAULT_COPYBREAK;
+
 /**
  *     dma_skb_copy_datagram_iovec - Copy a datagram to an iovec.
  *     @skb - buffer to copy
index 6b6c3adfcf00954185c03c651c74cc911314122f..6a6aa537b7aaa84320c85556002f47add37d8287 100644 (file)
@@ -688,6 +688,16 @@ ctl_table ipv4_table[] = {
                .mode           = 0644,
                .proc_handler   = &proc_dointvec
        },
+#ifdef CONFIG_NET_DMA
+       {
+               .ctl_name       = NET_TCP_DMA_COPYBREAK,
+               .procname       = "tcp_dma_copybreak",
+               .data           = &sysctl_tcp_dma_copybreak,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec
+       },
+#endif
        { .ctl_name = 0 }
 };