All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20100713102025.2835.61045.sendpatchset@danny.redhat>

diff --git a/a/1.txt b/N1/1.txt
index 1fa6ffb..b9e9077 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -115,9 +115,3 @@ index aa72e89..ebbbfea 100644
  
 -- 
 1.7.1.1
-
---
-To unsubscribe, send a message with 'unsubscribe linux-mm' in
-the body to majordomo@kvack.org.  For more info on Linux MM,
-see: http://www.linux-mm.org/ .
-Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
diff --git a/a/content_digest b/N1/content_digest
index 811b28b..d585828 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -132,12 +132,6 @@
  " \t}\n"
  " \n"
  "-- \n"
- "1.7.1.1\n"
- "\n"
- "--\n"
- "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
- "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
- "see: http://www.linux-mm.org/ .\n"
- "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
+ 1.7.1.1
 
-8f28ade9803fee8db9bc8d9b5c2bcaeb995f1943c54474ca7dc950d4b1df11a2
+0dcdd1e4539258a3a8e68d7a07e4519143342b0bb32e0915c041a307a5407c54

diff --git a/a/1.txt b/N2/1.txt
index 1fa6ffb..8b13789 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,123 +1 @@
->From 97cab9c6b5964ba48bee576214d71edbef74d0a6 Mon Sep 17 00:00:00 2001
-From: Xiaotian Feng <dfeng@redhat.com>
-Date: Tue, 13 Jul 2010 11:37:56 +0800
-Subject: [PATCH 19/30] netvm: prevent a stream specific deadlock
 
-It could happen that all !SOCK_MEMALLOC sockets have buffered so much data
-that we're over the global rmem limit. This will prevent SOCK_MEMALLOC buffers
-from receiving data, which will prevent userspace from running, which is needed
-to reduce the buffered data.
-
-Fix this by exempting the SOCK_MEMALLOC sockets from the rmem limit.
-
-Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
-Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
-Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
----
- include/net/sock.h   |    7 ++++---
- net/core/sock.c      |    2 +-
- net/ipv4/tcp_input.c |   12 ++++++------
- net/sctp/ulpevent.c  |    2 +-
- 4 files changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/include/net/sock.h b/include/net/sock.h
-index 1de14b6..ac87f6f 100644
---- a/include/net/sock.h
-+++ b/include/net/sock.h
-@@ -977,12 +977,13 @@ static inline int sk_wmem_schedule(struct sock *sk, int size)
- 		__sk_mem_schedule(sk, size, SK_MEM_SEND);
- }
- 
--static inline int sk_rmem_schedule(struct sock *sk, int size)
-+static inline int sk_rmem_schedule(struct sock *sk, struct sk_buff *skb)
- {
- 	if (!sk_has_account(sk))
- 		return 1;
--	return size <= sk->sk_forward_alloc ||
--		__sk_mem_schedule(sk, size, SK_MEM_RECV);
-+	return skb->truesize <= sk->sk_forward_alloc ||
-+		__sk_mem_schedule(sk, skb->truesize, SK_MEM_RECV) ||
-+		skb_emergency(skb);
- }
- 
- static inline void sk_mem_reclaim(struct sock *sk)
-diff --git a/net/core/sock.c b/net/core/sock.c
-index 6bd5765..f24560c 100644
---- a/net/core/sock.c
-+++ b/net/core/sock.c
-@@ -399,7 +399,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
- 	if (err)
- 		return err;
- 
--	if (!sk_rmem_schedule(sk, skb->truesize)) {
-+	if (!sk_rmem_schedule(sk, skb)) {
- 		atomic_inc(&sk->sk_drops);
- 		return -ENOBUFS;
- 	}
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 0433466..cea2bc2 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -4340,19 +4340,19 @@ static void tcp_ofo_queue(struct sock *sk)
- static int tcp_prune_ofo_queue(struct sock *sk);
- static int tcp_prune_queue(struct sock *sk);
- 
--static inline int tcp_try_rmem_schedule(struct sock *sk, unsigned int size)
-+static inline int tcp_try_rmem_schedule(struct sock *sk, struct sk_buff *skb)
- {
- 	if (atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf ||
--	    !sk_rmem_schedule(sk, size)) {
-+	    !sk_rmem_schedule(sk, skb)) {
- 
- 		if (tcp_prune_queue(sk) < 0)
- 			return -1;
- 
--		if (!sk_rmem_schedule(sk, size)) {
-+		if (!sk_rmem_schedule(sk, skb)) {
- 			if (!tcp_prune_ofo_queue(sk))
- 				return -1;
- 
--			if (!sk_rmem_schedule(sk, size))
-+			if (!sk_rmem_schedule(sk, skb))
- 				return -1;
- 		}
- 	}
-@@ -4405,7 +4405,7 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
- 		if (eaten <= 0) {
- queue_and_out:
- 			if (eaten < 0 &&
--			    tcp_try_rmem_schedule(sk, skb->truesize))
-+			    tcp_try_rmem_schedule(sk, skb))
- 				goto drop;
- 
- 			skb_set_owner_r(skb, sk);
-@@ -4476,7 +4476,7 @@ drop:
- 
- 	TCP_ECN_check_ce(tp, skb);
- 
--	if (tcp_try_rmem_schedule(sk, skb->truesize))
-+	if (tcp_try_rmem_schedule(sk, skb))
- 		goto drop;
- 
- 	/* Disable header prediction. */
-diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
-index aa72e89..ebbbfea 100644
---- a/net/sctp/ulpevent.c
-+++ b/net/sctp/ulpevent.c
-@@ -702,7 +702,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
- 	if (rx_count >= asoc->base.sk->sk_rcvbuf) {
- 
- 		if ((asoc->base.sk->sk_userlocks & SOCK_RCVBUF_LOCK) ||
--		    (!sk_rmem_schedule(asoc->base.sk, chunk->skb->truesize)))
-+		    (!sk_rmem_schedule(asoc->base.sk, chunk->skb)))
- 			goto fail;
- 	}
- 
--- 
-1.7.1.1
-
---
-To unsubscribe, send a message with 'unsubscribe linux-mm' in
-the body to majordomo@kvack.org.  For more info on Linux MM,
-see: http://www.linux-mm.org/ .
-Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
diff --git a/a/content_digest b/N2/content_digest
index 811b28b..a97105a 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -16,128 +16,5 @@
  " davem@davemloft.net\0"
  "\00:1\0"
  "b\0"
- ">From 97cab9c6b5964ba48bee576214d71edbef74d0a6 Mon Sep 17 00:00:00 2001\n"
- "From: Xiaotian Feng <dfeng@redhat.com>\n"
- "Date: Tue, 13 Jul 2010 11:37:56 +0800\n"
- "Subject: [PATCH 19/30] netvm: prevent a stream specific deadlock\n"
- "\n"
- "It could happen that all !SOCK_MEMALLOC sockets have buffered so much data\n"
- "that we're over the global rmem limit. This will prevent SOCK_MEMALLOC buffers\n"
- "from receiving data, which will prevent userspace from running, which is needed\n"
- "to reduce the buffered data.\n"
- "\n"
- "Fix this by exempting the SOCK_MEMALLOC sockets from the rmem limit.\n"
- "\n"
- "Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>\n"
- "Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>\n"
- "Signed-off-by: Xiaotian Feng <dfeng@redhat.com>\n"
- "---\n"
- " include/net/sock.h   |    7 ++++---\n"
- " net/core/sock.c      |    2 +-\n"
- " net/ipv4/tcp_input.c |   12 ++++++------\n"
- " net/sctp/ulpevent.c  |    2 +-\n"
- " 4 files changed, 12 insertions(+), 11 deletions(-)\n"
- "\n"
- "diff --git a/include/net/sock.h b/include/net/sock.h\n"
- "index 1de14b6..ac87f6f 100644\n"
- "--- a/include/net/sock.h\n"
- "+++ b/include/net/sock.h\n"
- "@@ -977,12 +977,13 @@ static inline int sk_wmem_schedule(struct sock *sk, int size)\n"
- " \t\t__sk_mem_schedule(sk, size, SK_MEM_SEND);\n"
- " }\n"
- " \n"
- "-static inline int sk_rmem_schedule(struct sock *sk, int size)\n"
- "+static inline int sk_rmem_schedule(struct sock *sk, struct sk_buff *skb)\n"
- " {\n"
- " \tif (!sk_has_account(sk))\n"
- " \t\treturn 1;\n"
- "-\treturn size <= sk->sk_forward_alloc ||\n"
- "-\t\t__sk_mem_schedule(sk, size, SK_MEM_RECV);\n"
- "+\treturn skb->truesize <= sk->sk_forward_alloc ||\n"
- "+\t\t__sk_mem_schedule(sk, skb->truesize, SK_MEM_RECV) ||\n"
- "+\t\tskb_emergency(skb);\n"
- " }\n"
- " \n"
- " static inline void sk_mem_reclaim(struct sock *sk)\n"
- "diff --git a/net/core/sock.c b/net/core/sock.c\n"
- "index 6bd5765..f24560c 100644\n"
- "--- a/net/core/sock.c\n"
- "+++ b/net/core/sock.c\n"
- "@@ -399,7 +399,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)\n"
- " \tif (err)\n"
- " \t\treturn err;\n"
- " \n"
- "-\tif (!sk_rmem_schedule(sk, skb->truesize)) {\n"
- "+\tif (!sk_rmem_schedule(sk, skb)) {\n"
- " \t\tatomic_inc(&sk->sk_drops);\n"
- " \t\treturn -ENOBUFS;\n"
- " \t}\n"
- "diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c\n"
- "index 0433466..cea2bc2 100644\n"
- "--- a/net/ipv4/tcp_input.c\n"
- "+++ b/net/ipv4/tcp_input.c\n"
- "@@ -4340,19 +4340,19 @@ static void tcp_ofo_queue(struct sock *sk)\n"
- " static int tcp_prune_ofo_queue(struct sock *sk);\n"
- " static int tcp_prune_queue(struct sock *sk);\n"
- " \n"
- "-static inline int tcp_try_rmem_schedule(struct sock *sk, unsigned int size)\n"
- "+static inline int tcp_try_rmem_schedule(struct sock *sk, struct sk_buff *skb)\n"
- " {\n"
- " \tif (atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf ||\n"
- "-\t    !sk_rmem_schedule(sk, size)) {\n"
- "+\t    !sk_rmem_schedule(sk, skb)) {\n"
- " \n"
- " \t\tif (tcp_prune_queue(sk) < 0)\n"
- " \t\t\treturn -1;\n"
- " \n"
- "-\t\tif (!sk_rmem_schedule(sk, size)) {\n"
- "+\t\tif (!sk_rmem_schedule(sk, skb)) {\n"
- " \t\t\tif (!tcp_prune_ofo_queue(sk))\n"
- " \t\t\t\treturn -1;\n"
- " \n"
- "-\t\t\tif (!sk_rmem_schedule(sk, size))\n"
- "+\t\t\tif (!sk_rmem_schedule(sk, skb))\n"
- " \t\t\t\treturn -1;\n"
- " \t\t}\n"
- " \t}\n"
- "@@ -4405,7 +4405,7 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)\n"
- " \t\tif (eaten <= 0) {\n"
- " queue_and_out:\n"
- " \t\t\tif (eaten < 0 &&\n"
- "-\t\t\t    tcp_try_rmem_schedule(sk, skb->truesize))\n"
- "+\t\t\t    tcp_try_rmem_schedule(sk, skb))\n"
- " \t\t\t\tgoto drop;\n"
- " \n"
- " \t\t\tskb_set_owner_r(skb, sk);\n"
- "@@ -4476,7 +4476,7 @@ drop:\n"
- " \n"
- " \tTCP_ECN_check_ce(tp, skb);\n"
- " \n"
- "-\tif (tcp_try_rmem_schedule(sk, skb->truesize))\n"
- "+\tif (tcp_try_rmem_schedule(sk, skb))\n"
- " \t\tgoto drop;\n"
- " \n"
- " \t/* Disable header prediction. */\n"
- "diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c\n"
- "index aa72e89..ebbbfea 100644\n"
- "--- a/net/sctp/ulpevent.c\n"
- "+++ b/net/sctp/ulpevent.c\n"
- "@@ -702,7 +702,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,\n"
- " \tif (rx_count >= asoc->base.sk->sk_rcvbuf) {\n"
- " \n"
- " \t\tif ((asoc->base.sk->sk_userlocks & SOCK_RCVBUF_LOCK) ||\n"
- "-\t\t    (!sk_rmem_schedule(asoc->base.sk, chunk->skb->truesize)))\n"
- "+\t\t    (!sk_rmem_schedule(asoc->base.sk, chunk->skb)))\n"
- " \t\t\tgoto fail;\n"
- " \t}\n"
- " \n"
- "-- \n"
- "1.7.1.1\n"
- "\n"
- "--\n"
- "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
- "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
- "see: http://www.linux-mm.org/ .\n"
- "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
 
-8f28ade9803fee8db9bc8d9b5c2bcaeb995f1943c54474ca7dc950d4b1df11a2
+241f787bbd058b0c74d2fc64d872261d6cb92b418f23d08cfc1249d88ecaaec7

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.