X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fkernel_patches%2Fpatches%2Ftcp_zero_copy_2.4.20_chaos.patch;h=a64ecf95dfe77c4ccad190f4deec983a0d3d9e4d;hp=dfb4de51c6aeea00f4d48a3017a11e9d71e41348;hb=f00e58db820398abb5cb7a9dc1cc9a21e56342c4;hpb=a85b25f04f6ba5bb45c116927c9e5d0e4639dc97 diff --git a/lustre/kernel_patches/patches/tcp_zero_copy_2.4.20_chaos.patch b/lustre/kernel_patches/patches/tcp_zero_copy_2.4.20_chaos.patch index dfb4de5..a64ecf9 100644 --- a/lustre/kernel_patches/patches/tcp_zero_copy_2.4.20_chaos.patch +++ b/lustre/kernel_patches/patches/tcp_zero_copy_2.4.20_chaos.patch @@ -5,9 +5,11 @@ net/netsyms.c | 2 5 files changed, 311 insertions(+), 3 deletions(-) ---- kernel-2.4.20-6chaos_18_7/include/linux/skbuff.h~tcp_zero_copy_2.4.20_chaos 2003-06-24 11:31:17.000000000 -0600 -+++ kernel-2.4.20-6chaos_18_7-braam/include/linux/skbuff.h 2003-07-12 15:38:07.000000000 -0600 -@@ -116,6 +116,30 @@ struct skb_frag_struct +Index: linux-2.4.20-rh-20.9/include/linux/skbuff.h +=================================================================== +--- linux-2.4.20-rh-20.9.orig/include/linux/skbuff.h 2003-09-13 19:34:24.000000000 +0400 ++++ linux-2.4.20-rh-20.9/include/linux/skbuff.h 2003-12-19 14:14:55.000000000 +0300 +@@ -116,6 +116,30 @@ __u16 size; }; @@ -38,7 +40,7 @@ /* This data is invariant across clones and lives at * the end of the header data, ie. at skb->end. */ -@@ -123,6 +147,12 @@ struct skb_shared_info { +@@ -123,6 +147,12 @@ atomic_t dataref; unsigned int nr_frags; struct sk_buff *frag_list; @@ -51,9 +53,11 @@ skb_frag_t frags[MAX_SKB_FRAGS]; }; ---- kernel-2.4.20-6chaos_18_7/include/net/tcp.h~tcp_zero_copy_2.4.20_chaos 2003-06-24 11:31:17.000000000 -0600 -+++ kernel-2.4.20-6chaos_18_7-braam/include/net/tcp.h 2003-07-12 15:38:07.000000000 -0600 -@@ -643,6 +643,8 @@ extern int tcp_v4_tw_remember_stam +Index: linux-2.4.20-rh-20.9/include/net/tcp.h +=================================================================== +--- linux-2.4.20-rh-20.9.orig/include/net/tcp.h 2003-09-13 19:34:25.000000000 +0400 ++++ linux-2.4.20-rh-20.9/include/net/tcp.h 2003-12-19 14:14:55.000000000 +0300 +@@ -643,6 +643,8 @@ extern int tcp_sendmsg(struct sock *sk, struct msghdr *msg, int size); extern ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags); @@ -62,7 +66,7 @@ extern int tcp_ioctl(struct sock *sk, int cmd, -@@ -737,6 +739,9 @@ extern int tcp_recvmsg(struct sock *sk +@@ -737,6 +739,9 @@ struct msghdr *msg, int len, int nonblock, int flags, int *addr_len); @@ -72,20 +76,33 @@ extern int tcp_listen_start(struct sock *sk); ---- kernel-2.4.20-6chaos_18_7/net/netsyms.c~tcp_zero_copy_2.4.20_chaos 2003-05-15 21:15:18.000000000 -0600 -+++ kernel-2.4.20-6chaos_18_7-braam/net/netsyms.c 2003-07-12 15:38:54.000000000 -0600 -@@ -397,6 +397,8 @@ EXPORT_SYMBOL(sysctl_tcp_wmem); +Index: linux-2.4.20-rh-20.9/net/netsyms.c +=================================================================== +--- linux-2.4.20-rh-20.9.orig/net/netsyms.c 2003-09-13 19:34:24.000000000 +0400 ++++ linux-2.4.20-rh-20.9/net/netsyms.c 2003-12-19 14:15:24.000000000 +0300 +@@ -396,7 +396,7 @@ + EXPORT_SYMBOL(sysctl_tcp_wmem); EXPORT_SYMBOL(sysctl_tcp_ecn); EXPORT_SYMBOL(tcp_cwnd_application_limited); - EXPORT_SYMBOL(tcp_sendpage); -+EXPORT_SYMBOL(tcp_sendpage_zccd); +-EXPORT_SYMBOL(tcp_sendpage); +EXPORT_SYMBOL(tcp_recvpackets); EXPORT_SYMBOL(sysctl_tcp_low_latency); EXPORT_SYMBOL(tcp_write_xmit); ---- kernel-2.4.20-6chaos_18_7/net/core/skbuff.c~tcp_zero_copy_2.4.20_chaos 2003-05-15 21:15:21.000000000 -0600 -+++ kernel-2.4.20-6chaos_18_7-braam/net/core/skbuff.c 2003-07-12 15:38:07.000000000 -0600 -@@ -208,6 +208,8 @@ struct sk_buff *alloc_skb(unsigned int s +@@ -417,6 +417,8 @@ + + #endif + ++EXPORT_SYMBOL(tcp_sendpage); ++EXPORT_SYMBOL(tcp_sendpage_zccd); + EXPORT_SYMBOL(tcp_read_sock); + + EXPORT_SYMBOL(netlink_set_err); +Index: linux-2.4.20-rh-20.9/net/core/skbuff.c +=================================================================== +--- linux-2.4.20-rh-20.9.orig/net/core/skbuff.c 2003-09-13 19:34:19.000000000 +0400 ++++ linux-2.4.20-rh-20.9/net/core/skbuff.c 2003-12-19 14:14:56.000000000 +0300 +@@ -208,6 +208,8 @@ atomic_set(&(skb_shinfo(skb)->dataref), 1); skb_shinfo(skb)->nr_frags = 0; skb_shinfo(skb)->frag_list = NULL; @@ -94,7 +111,7 @@ return skb; nodata: -@@ -276,6 +278,10 @@ static void skb_release_data(struct sk_b +@@ -276,6 +278,10 @@ { if (!skb->cloned || atomic_dec_and_test(&(skb_shinfo(skb)->dataref))) { @@ -105,7 +122,7 @@ if (skb_shinfo(skb)->nr_frags) { int i; for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) -@@ -532,6 +538,8 @@ int skb_linearize(struct sk_buff *skb, i +@@ -532,6 +538,8 @@ atomic_set(&(skb_shinfo(skb)->dataref), 1); skb_shinfo(skb)->nr_frags = 0; skb_shinfo(skb)->frag_list = NULL; @@ -114,7 +131,7 @@ /* We are no longer a clone, even if we were. */ skb->cloned = 0; -@@ -578,6 +586,14 @@ struct sk_buff *pskb_copy(struct sk_buff +@@ -578,6 +586,14 @@ n->data_len = skb->data_len; n->len = skb->len; @@ -129,7 +146,7 @@ if (skb_shinfo(skb)->nr_frags) { int i; -@@ -620,6 +636,8 @@ int pskb_expand_head(struct sk_buff *skb +@@ -620,6 +636,8 @@ u8 *data; int size = nhead + (skb->end - skb->head) + ntail; long off; @@ -138,7 +155,7 @@ if (skb_shared(skb)) BUG(); -@@ -641,6 +659,11 @@ int pskb_expand_head(struct sk_buff *skb +@@ -641,6 +659,11 @@ if (skb_shinfo(skb)->frag_list) skb_clone_fraglist(skb); @@ -150,7 +167,7 @@ skb_release_data(skb); off = (data+nhead) - skb->head; -@@ -655,6 +678,8 @@ int pskb_expand_head(struct sk_buff *skb +@@ -655,6 +678,8 @@ skb->nh.raw += off; skb->cloned = 0; atomic_set(&skb_shinfo(skb)->dataref, 1); @@ -159,9 +176,11 @@ return 0; nodata: ---- kernel-2.4.20-6chaos_18_7/net/ipv4/tcp.c~tcp_zero_copy_2.4.20_chaos 2003-05-15 21:15:21.000000000 -0600 -+++ kernel-2.4.20-6chaos_18_7-braam/net/ipv4/tcp.c 2003-07-12 15:38:07.000000000 -0600 -@@ -747,7 +747,7 @@ do_interrupted: +Index: linux-2.4.20-rh-20.9/net/ipv4/tcp.c +=================================================================== +--- linux-2.4.20-rh-20.9.orig/net/ipv4/tcp.c 2003-09-13 19:34:25.000000000 +0400 ++++ linux-2.4.20-rh-20.9/net/ipv4/tcp.c 2003-12-19 14:14:56.000000000 +0300 +@@ -747,7 +747,7 @@ goto out; } @@ -170,7 +189,7 @@ static inline int can_coalesce(struct sk_buff *skb, int i, struct page *page, int off) -@@ -826,7 +826,8 @@ static int tcp_error(struct sock *sk, in +@@ -826,7 +826,8 @@ return err; } @@ -180,7 +199,7 @@ { struct tcp_opt *tp = &(sk->tp_pinfo.af_tcp); int mss_now; -@@ -874,6 +875,17 @@ new_segment: +@@ -874,6 +875,17 @@ copy = size; i = skb_shinfo(skb)->nr_frags; @@ -198,7 +217,7 @@ if (can_coalesce(skb, i, page, offset)) { skb_shinfo(skb)->frags[i-1].size += copy; } else if (i < MAX_SKB_FRAGS) { -@@ -884,6 +896,20 @@ new_segment: +@@ -884,6 +896,20 @@ goto new_segment; } @@ -219,7 +238,7 @@ skb->len += copy; skb->data_len += copy; skb->ip_summed = CHECKSUM_HW; -@@ -947,7 +973,31 @@ ssize_t tcp_sendpage(struct socket *sock +@@ -947,7 +973,31 @@ lock_sock(sk); TCP_CHECK_TIMER(sk); @@ -252,7 +271,7 @@ TCP_CHECK_TIMER(sk); release_sock(sk); return res; -@@ -1771,6 +1821,202 @@ recv_urg: +@@ -1771,6 +1821,202 @@ goto out; } @@ -455,5 +474,3 @@ /* * State processing on a close. This implements the state shift for * sending our FIN frame. Note that we only send a FIN for some - -_