[kernel] r15448 - in dists/sid/linux-2.6/debian: . patches/features/all/openvz

Maximilian Attems maks at alioth.debian.org
Wed Mar 24 04:46:47 UTC 2010


Author: maks
Date: Wed Mar 24 04:46:44 2010
New Revision: 15448

Log:
update openvz patch

Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Mon Mar 22 18:42:58 2010	(r15447)
+++ dists/sid/linux-2.6/debian/changelog	Wed Mar 24 04:46:44 2010	(r15448)
@@ -15,7 +15,7 @@
   [ maximilian attems]
   * [alpha, hppa] Disable oprofile as tracing code is unsupported here.
     (closes: #574368)
-  * Update openvz patch to 026c0e96af23. (closes: #574598)
+  * Update openvz patch to 796e80e5b2ed. (closes: #574598, #575189)
   * [x86]: Disable FB_INTEL. (closes: #447575, #503766, #574401)
   * ssb: do not read SPROM if it does not exist.
 

Modified: dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch	Mon Mar 22 18:42:58 2010	(r15447)
+++ dists/sid/linux-2.6/debian/patches/features/all/openvz/openvz.patch	Wed Mar 24 04:46:44 2010	(r15448)
@@ -1,9 +1,49 @@
-openvz patch from git://git.openvz.org/pub/linux-2.6.32-openvz
+commit 796e80e5b2edff524f40a608be511143b4c8c828
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Fri Mar 19 11:17:45 2010 +0300
+
+    OpenVZ kernel 2.6.32-afanasyev released
+    
+    Named after Viktor Mikhailovich Afanasyev - a Russian cosmonaut.
+
+commit 97ae2f923c11e4cc83436878cdf5262781ae17d1
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Mon Mar 22 17:14:57 2010 +0300
+
+    net: Virtualize tcp orphan count back
+    
+    This oopsed before the previous fix.
+    
+    Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit 5ae2ad90d7bbe29ea299955fad28491fedf10468
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Mon Mar 22 17:14:23 2010 +0300
+
+    bc: Don't re-initialize BC after orphan count allocaiton
+    
+    And do a small code rework.
+    http://bugzilla.openvz.org/show_bug.cgi?id=1471
+    
+    Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+
+commit 1a8072e88d55070bd78fe960c6db36e5af61ea85
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Mon Mar 22 17:13:48 2010 +0300
+
+    mm: Don't charge failed allocaiton
+    
+    I.e. don't oops :\
+    
+    Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
 
-generated with
-git log 2.6.32.10...HEAD > openvz.patch
-git diff 2.6.32.10...HEAD >> openvz.patch
--maks
+commit f27cf7344f66277fc44462d2880d8a43c17f59ac
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Fri Mar 19 12:06:09 2010 +0300
+
+    Compilation fix for ftrace
+    
+    Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
 
 commit 026c0e96af23e154b741645fe2d61a0278451268
 Author: Pavel Emelyanov <xemul at openvz.org>
@@ -2526,14 +2566,14 @@
 +library.  If this is what you want to do, use the GNU Library General
 +Public License instead of this License.
 diff --git a/Makefile b/Makefile
-index 2becebb..68e36f0 100644
+index 2becebb..0af517e 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -2,6 +2,7 @@ VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 32
  EXTRAVERSION =
-+VZVERSION = 042test001
++VZVERSION = afanasyev
  NAME = Man-Eating Seals of Antiquity
  
  # *DOCUMENTATION*
@@ -22082,10 +22122,10 @@
 +#endif
 diff --git a/include/bc/sock_orphan.h b/include/bc/sock_orphan.h
 new file mode 100644
-index 0000000..d5b6f74
+index 0000000..b19a316
 --- /dev/null
 +++ b/include/bc/sock_orphan.h
-@@ -0,0 +1,107 @@
+@@ -0,0 +1,104 @@
 +/*
 + *  include/bc/sock_orphan.h
 + *
@@ -22107,11 +22147,8 @@
 +
 +static inline struct percpu_counter *__ub_get_orphan_count_ptr(struct sock *sk)
 +{
-+#if 0
-+	FIXME this oopses in tcp_close
 +	if (sock_has_ubc(sk))
 +		return &sock_bc(sk)->ub->ub_orphan_count;
-+#endif
 +	return sk->sk_prot->orphan_count;
 +}
 +
@@ -31610,10 +31647,10 @@
 +obj-$(CONFIG_BC_IO_ACCOUNTING) += io_acct.o
 diff --git a/kernel/bc/beancounter.c b/kernel/bc/beancounter.c
 new file mode 100644
-index 0000000..3158b0a
+index 0000000..6513257
 --- /dev/null
 +++ b/kernel/bc/beancounter.c
-@@ -0,0 +1,680 @@
+@@ -0,0 +1,688 @@
 +/*
 + *  linux/kernel/bc/beancounter.c
 + *
@@ -31724,13 +31761,57 @@
 + *	will mean the old entry is still around with resource tied to it.
 + */
 +
-+static inline void free_ub(struct user_beancounter *ub)
++static struct user_beancounter *alloc_ub(uid_t uid, struct user_beancounter *p)
++{
++	struct user_beancounter *new_ub;
++
++	ub_debug(UBD_ALLOC, "Creating ub %p\n", new_ub);
++
++	new_ub = (struct user_beancounter *)kmem_cache_alloc(ub_cachep, 
++			GFP_KERNEL);
++	if (new_ub == NULL)
++		return NULL;
++
++	if (p == NULL) {
++		memcpy(new_ub, &default_beancounter, sizeof(*new_ub));
++		init_beancounter_struct(new_ub);
++	} else {
++		memset(new_ub, 0, sizeof(*new_ub));
++		init_beancounter_struct(new_ub);
++		init_beancounter_nolimits(new_ub);
++		init_beancounter_store(new_ub);
++	}
++
++	if (percpu_counter_init(&new_ub->ub_orphan_count, 0))
++		goto fail_pcpu;
++
++	new_ub->ub_percpu = alloc_percpu(struct ub_percpu_struct);
++	if (new_ub->ub_percpu == NULL)
++		goto fail_free;
++
++	new_ub->ub_uid = uid;
++	new_ub->parent = get_beancounter(p);
++	return new_ub;
++
++fail_free:
++	percpu_counter_destroy(&new_ub->ub_orphan_count);
++fail_pcpu:
++	kmem_cache_free(ub_cachep, new_ub);
++	return NULL;
++}
++
++static inline void __free_ub(struct user_beancounter *ub)
 +{
 +	free_percpu(ub->ub_percpu);
-+	percpu_counter_destroy(&ub->ub_orphan_count);
 +	kmem_cache_free(ub_cachep, ub);
 +}
 +
++static inline void free_ub(struct user_beancounter *ub)
++{
++	percpu_counter_destroy(&ub->ub_orphan_count);
++	__free_ub(ub);
++}
++
 +static inline struct user_beancounter *bc_lookup_hash(struct hlist_head *hash,
 +		uid_t uid, struct user_beancounter *parent)
 +{
@@ -31777,29 +31858,12 @@
 +	}
 +	spin_unlock_irqrestore(&ub_hash_lock, flags);
 +
-+	/* alloc new ub */
-+	new_ub = (struct user_beancounter *)kmem_cache_alloc(ub_cachep, 
-+			GFP_KERNEL);
++	new_ub = alloc_ub(uid, NULL);
 +	if (new_ub == NULL)
 +		return NULL;
 +
-+	if (percpu_counter_init(&new_ub->ub_orphan_count, 0))
-+		goto fail_pcpu;
-+
-+	ub_debug(UBD_ALLOC, "Creating ub %p\n", new_ub);
-+	memcpy(new_ub, &default_beancounter, sizeof(*new_ub));
-+	init_beancounter_struct(new_ub);
-+	new_ub->ub_percpu = alloc_percpu(struct ub_percpu_struct);
-+	if (new_ub->ub_percpu == NULL)
-+		goto fail_free;
-+	new_ub->ub_uid = uid;
 +	goto retry;
 +
-+fail_free:
-+	percpu_counter_destroy(&new_ub->ub_orphan_count);
-+fail_pcpu:
-+	kmem_cache_free(ub_cachep, new_ub);
-+	return NULL;
 +}
 +EXPORT_SYMBOL(get_beancounter_byuid);
 +
@@ -31839,32 +31903,11 @@
 +	}
 +	spin_unlock_irqrestore(&ub_hash_lock, flags);
 +
-+	/* alloc new ub */
-+	new_ub = (struct user_beancounter *)kmem_cache_alloc(ub_cachep, 
-+			GFP_KERNEL);
++	new_ub = alloc_ub(id, p);
 +	if (new_ub == NULL)
 +		return NULL;
 +
-+	if (percpu_counter_init(&new_ub->ub_orphan_count, 0))
-+		goto fail_pcpu;
-+
-+	ub_debug(UBD_ALLOC, "Creating sub %p\n", new_ub);
-+	memset(new_ub, 0, sizeof(*new_ub));
-+	init_beancounter_nolimits(new_ub);
-+	init_beancounter_store(new_ub);
-+	init_beancounter_struct(new_ub);
-+	new_ub->ub_percpu = alloc_percpu(struct ub_percpu_struct);
-+	if (new_ub->ub_percpu == NULL)
-+		goto fail_free;
-+	new_ub->ub_uid = id;
-+	new_ub->parent = get_beancounter(p);
 +	goto retry;
-+
-+fail_free:
-+	percpu_counter_destroy(&new_ub->ub_orphan_count);
-+fail_pcpu:
-+	kmem_cache_free(ub_cachep, new_ub);
-+	return NULL;
 +}
 +EXPORT_SYMBOL(get_subbeancounter_byid);
 +
@@ -31915,7 +31958,7 @@
 +	struct user_beancounter *ub;
 +
 +	ub = container_of(rcu, struct user_beancounter, rcu);
-+	free_ub(ub);
++	__free_ub(ub);
 +}
 +
 +static void delayed_release_beancounter(struct work_struct *w)
@@ -31938,6 +31981,8 @@
 +
 +	bc_verify_held(ub);
 +	ub_free_counters(ub);
++	percpu_counter_destroy(&ub->ub_orphan_count);
++
 +	parent = ub->parent;
 +
 +	call_rcu(&ub->rcu, bc_free_rcu);
@@ -63336,6 +63381,28 @@
  	/*
  	 * If the sum of all the available memory (i.e. ram + swap)
  	 * is less than can be stored in a 32 bit unsigned long then
+diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
+index 6dc4e5e..f8d1912 100644
+--- a/kernel/trace/ftrace.c
++++ b/kernel/trace/ftrace.c
+@@ -3091,7 +3091,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
+ 	}
+ 
+ 	read_lock_irqsave(&tasklist_lock, flags);
+-	do_each_thread(g, t) {
++	do_each_thread_all(g, t) {
+ 		if (start == end) {
+ 			ret = -EAGAIN;
+ 			goto unlock;
+@@ -3105,7 +3105,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
+ 			smp_wmb();
+ 			t->ret_stack = ret_stack_list[start++];
+ 		}
+-	} while_each_thread(g, t);
++	} while_each_thread_all(g, t);
+ 
+ unlock:
+ 	read_unlock_irqrestore(&tasklist_lock, flags);
 diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
 index cc89be5..b328e97 100644
 --- a/kernel/tracepoint.c
@@ -68410,7 +68477,7 @@
  		}
  		return 0;
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 36992b6..85e288f 100644
+index 36992b6..cd0501c 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -54,6 +54,9 @@
@@ -68524,7 +68591,7 @@
  				preferred_zone, migratetype);
  
 +	__alloc_collect_stats(gfp_mask, order, page, start);
-+	if (ub_page_charge(page, order, gfp_mask)) {
++	if (page && ub_page_charge(page, order, gfp_mask)) {
 +		__free_pages(page, order);
 +		page = NULL;
 +	}
@@ -74521,19 +74588,18 @@
  }
  
 diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
-index f25542c..777a7b5 100644
+index f25542c..879462c 100644
 --- a/net/ipv4/proc.c
 +++ b/net/ipv4/proc.c
-@@ -53,6 +53,9 @@ static int sockstat_seq_show(struct seq_file *seq, void *v)
- 	struct net *net = seq->private;
+@@ -54,7 +54,7 @@ static int sockstat_seq_show(struct seq_file *seq, void *v)
  	int orphans, sockets;
  
-+	if (!ve_is_super(get_exec_env()))
-+		return 0;
-+
  	local_bh_disable();
- 	orphans = percpu_counter_sum_positive(&tcp_orphan_count);
+-	orphans = percpu_counter_sum_positive(&tcp_orphan_count);
++	orphans = percpu_counter_sum_positive(&get_exec_ub()->ub_orphan_count);
  	sockets = percpu_counter_sum_positive(&tcp_sockets_allocated);
+ 	local_bh_enable();
+ 
 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
 index 5b1050a..db496b6 100644
 --- a/net/ipv4/route.c



More information about the Kernel-svn-changes mailing list