linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [patch 1/5] slqb: irq section fix
@ 2009-04-14 16:44 Nick Piggin
  2009-04-14 16:45 ` [patch 2/5] slqb: fix compilation warning Nick Piggin
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Nick Piggin @ 2009-04-14 16:44 UTC (permalink / raw)
  To: Pekka Enberg, Linux Memory Management List


slqb: irq section fix

flush_free_list can be called with interrupts enabled, from
kmem_cache_destroy. Fix this.

Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Index: linux-2.6/mm/slqb.c
===================================================================
--- linux-2.6.orig/mm/slqb.c	2009-04-01 00:57:13.000000000 +1100
+++ linux-2.6/mm/slqb.c	2009-04-01 01:02:02.000000000 +1100
@@ -1087,7 +1087,6 @@ static void slab_free_to_remote(struct k
  */
 static void flush_free_list(struct kmem_cache *s, struct kmem_cache_list *l)
 {
-	struct kmem_cache_cpu *c;
 	void **head;
 	int nr;
 
@@ -1100,8 +1099,6 @@ static void flush_free_list(struct kmem_
 	slqb_stat_inc(l, FLUSH_FREE_LIST);
 	slqb_stat_add(l, FLUSH_FREE_LIST_OBJECTS, nr);
 
-	c = get_cpu_slab(s, smp_processor_id());
-
 	l->freelist.nr -= nr;
 	head = l->freelist.head;
 
@@ -1116,6 +1113,10 @@ static void flush_free_list(struct kmem_
 
 #ifdef CONFIG_SMP
 		if (page->list != l) {
+			struct kmem_cache_cpu *c;
+
+			c = get_cpu_slab(s, smp_processor_id());
+
 			slab_free_to_remote(s, page, object, c);
 			slqb_stat_inc(l, FLUSH_FREE_LIST_REMOTE);
 		} else
@@ -2251,6 +2252,7 @@ void kmem_cache_destroy(struct kmem_cach
 	down_write(&slqb_lock);
 	list_del(&s->list);
 
+	local_irq_disable();
 #ifdef CONFIG_SMP
 	for_each_online_cpu(cpu) {
 		struct kmem_cache_cpu *c = get_cpu_slab(s, cpu);
@@ -2297,6 +2299,7 @@ void kmem_cache_destroy(struct kmem_cach
 
 	free_kmem_cache_nodes(s);
 #endif
+	local_irq_enable();
 
 	sysfs_slab_remove(s);
 	up_write(&slqb_lock);

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [patch 2/5] slqb: fix compilation warning
  2009-04-14 16:44 [patch 1/5] slqb: irq section fix Nick Piggin
@ 2009-04-14 16:45 ` Nick Piggin
  2009-04-14 16:46 ` [patch 3/5] slqb: cap remote free list size Nick Piggin
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Nick Piggin @ 2009-04-14 16:45 UTC (permalink / raw)
  To: Pekka Enberg, Linux Memory Management List


slqb: fix compilation warning

gather_stats is not used if CONFIG_SLQB_SYSFS is not selected. Make
it conditional and avoid the warning.

Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Index: linux-2.6/mm/slqb.c
===================================================================
--- linux-2.6.orig/mm/slqb.c	2009-04-01 03:11:05.000000000 +1100
+++ linux-2.6/mm/slqb.c	2009-04-01 03:11:25.000000000 +1100
@@ -3121,6 +3121,7 @@ static void gather_stats_locked(struct k
 	stats->nr_objects = stats->nr_slabs * s->objects;
 }
 
+#ifdef CONFIG_SLQB_SYSFS
 static void gather_stats(struct kmem_cache *s, struct stats_gather *stats)
 {
 	down_read(&slqb_lock); /* hold off hotplug */
@@ -3128,6 +3129,7 @@ static void gather_stats(struct kmem_cac
 	up_read(&slqb_lock);
 }
 #endif
+#endif
 
 /*
  * The /proc/slabinfo ABI

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [patch 3/5] slqb: cap remote free list size
  2009-04-14 16:44 [patch 1/5] slqb: irq section fix Nick Piggin
  2009-04-14 16:45 ` [patch 2/5] slqb: fix compilation warning Nick Piggin
@ 2009-04-14 16:46 ` Nick Piggin
  2009-04-14 16:46 ` [patch 4/5] slqb: config slab size Nick Piggin
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Nick Piggin @ 2009-04-14 16:46 UTC (permalink / raw)
  To: Pekka Enberg, Linux Memory Management List


slqb: cap remote free list size

SLQB has a design flaw noticed by Yanmin Zhang when doing network packet
stress testing.

My intention with lockless slab lists had been to try to balance
producer/consumer type activity on the object queues just at allocation-time
with the producer and free-time with the consumer. But that breaks down if you
have a huge number of objects in-flight and then free them after activity is
reduced at the producer-side.

Basically just objects being allocated on CPU0 are then freed by CPU1 but then
rely on activity from CPU0 (or periodic trimming) to free them back to the page
allocator. If there is infrequent activity on CPU0, then it can take a long
time for the periodic trimming to free up unused objects.

Fix this by adding a lock to the page list queues and allowing CPU1 to do the
freeing work synchronously if queues get too large. It allows "nice"
producer/consumer type patterns to still fit within the fast object queues,
without the possibility to build up a lot of objects... The spinlock should
not be a big problem for nice workloads, as it is at least an order of
magnitude less frequent than an object allocation/free operation.

Signed-off-by: Nick Piggin <npiggin@suse.de>

Index: linux-2.6/include/linux/slqb_def.h
===================================================================
--- linux-2.6.orig/include/linux/slqb_def.h	2009-04-01 03:10:27.000000000 +1100
+++ linux-2.6/include/linux/slqb_def.h	2009-04-01 04:06:58.000000000 +1100
@@ -77,6 +77,9 @@ struct kmem_cache_list {
 				/* Total number of slabs allocated */
 	unsigned long		nr_slabs;
 
+				/* Protects nr_partial, nr_slabs, and partial */
+	spinlock_t		page_lock;
+
 #ifdef CONFIG_SMP
 	/*
 	 * In the case of per-cpu lists, remote_free is for objects freed by
Index: linux-2.6/mm/slqb.c
===================================================================
--- linux-2.6.orig/mm/slqb.c	2009-04-01 03:11:25.000000000 +1100
+++ linux-2.6/mm/slqb.c	2009-04-01 04:24:05.000000000 +1100
@@ -1089,6 +1089,7 @@ static void flush_free_list(struct kmem_
 {
 	void **head;
 	int nr;
+	int locked = 0;
 
 	nr = l->freelist.nr;
 	if (unlikely(!nr))
@@ -1115,17 +1116,31 @@ static void flush_free_list(struct kmem_
 		if (page->list != l) {
 			struct kmem_cache_cpu *c;
 
+			if (locked) {
+				spin_unlock(&l->page_lock);
+				locked = 0;
+			}
+
 			c = get_cpu_slab(s, smp_processor_id());
 
 			slab_free_to_remote(s, page, object, c);
 			slqb_stat_inc(l, FLUSH_FREE_LIST_REMOTE);
 		} else
 #endif
+		{
+			if (!locked) {
+				spin_lock(&l->page_lock);
+				locked = 1;
+			}
 			free_object_to_page(s, l, page, object);
+		}
 
 		nr--;
 	} while (nr);
 
+	if (locked)
+		spin_unlock(&l->page_lock);
+
 	l->freelist.head = head;
 	if (!l->freelist.nr)
 		l->freelist.tail = NULL;
@@ -1272,6 +1287,21 @@ static noinline void *__cache_list_get_p
 	return object;
 }
 
+static void *cache_list_get_page(struct kmem_cache *s,
+				struct kmem_cache_list *l)
+{
+	void *object;
+
+	if (unlikely(!l->nr_partial))
+		return NULL;
+
+	spin_lock(&l->page_lock);
+	object = __cache_list_get_page(s, l);
+	spin_unlock(&l->page_lock);
+
+	return object;
+}
+
 /*
  * Allocation slowpath. Allocate a new slab page from the page allocator, and
  * put it on the list's partial list. Must be followed by an allocation so
@@ -1315,12 +1345,14 @@ static noinline void *__slab_alloc_page(
 		l = &c->list;
 		page->list = l;
 
+		spin_lock(&l->page_lock);
 		l->nr_slabs++;
 		l->nr_partial++;
 		list_add(&page->lru, &l->partial);
 		slqb_stat_inc(l, ALLOC);
 		slqb_stat_inc(l, ALLOC_SLAB_NEW);
 		object = __cache_list_get_page(s, l);
+		spin_unlock(&l->page_lock);
 	} else {
 #ifdef CONFIG_NUMA
 		struct kmem_cache_node *n;
@@ -1378,7 +1410,7 @@ static void *__remote_slab_alloc_node(st
 
 	object = __cache_list_get_object(s, l);
 	if (unlikely(!object)) {
-		object = __cache_list_get_page(s, l);
+		object = cache_list_get_page(s, l);
 		if (unlikely(!object)) {
 			spin_unlock(&n->list_lock);
 			return __slab_alloc_page(s, gfpflags, node);
@@ -1441,7 +1473,7 @@ try_remote:
 	l = &c->list;
 	object = __cache_list_get_object(s, l);
 	if (unlikely(!object)) {
-		object = __cache_list_get_page(s, l);
+		object = cache_list_get_page(s, l);
 		if (unlikely(!object)) {
 			object = __slab_alloc_page(s, gfpflags, node);
 #ifdef CONFIG_NUMA
@@ -1544,6 +1576,37 @@ static void flush_remote_free_cache(stru
 
 	dst = c->remote_cache_list;
 
+	/*
+	 * Less common case, dst is filling up so free synchronously.
+	 * No point in having remote CPU free thse as it will just
+	 * free them back to the page list anyway.
+	 */
+	if (unlikely(dst->remote_free.list.nr > (slab_hiwater(s) >> 1))) {
+		void **head;
+
+		head = src->head;
+		spin_lock(&dst->page_lock);
+		do {
+			struct slqb_page *page;
+			void **object;
+
+			object = head;
+			VM_BUG_ON(!object);
+			head = get_freepointer(s, object);
+			page = virt_to_head_slqb_page(object);
+
+			free_object_to_page(s, dst, page, object);
+			nr--;
+		} while (nr);
+		spin_unlock(&dst->page_lock);
+
+		src->head = NULL;
+		src->tail = NULL;
+		src->nr = 0;
+
+		return;
+	}
+
 	spin_lock(&dst->remote_free.lock);
 
 	if (!dst->remote_free.list.head)
@@ -1598,7 +1661,7 @@ static noinline void slab_free_to_remote
 	r->tail = object;
 	r->nr++;
 
-	if (unlikely(r->nr > slab_freebatch(s)))
+	if (unlikely(r->nr >= slab_freebatch(s)))
 		flush_remote_free_cache(s, c);
 }
 #endif
@@ -1777,6 +1840,7 @@ static void init_kmem_cache_list(struct 
 	l->nr_partial		= 0;
 	l->nr_slabs		= 0;
 	INIT_LIST_HEAD(&l->partial);
+	spin_lock_init(&l->page_lock);
 
 #ifdef CONFIG_SMP
 	l->remote_free_check	= 0;
@@ -3059,6 +3123,7 @@ static void __gather_stats(void *arg)
 	int i;
 #endif
 
+	spin_lock(&l->page_lock);
 	nr_slabs = l->nr_slabs;
 	nr_partial = l->nr_partial;
 	nr_inuse = (nr_slabs - nr_partial) * s->objects;
@@ -3066,6 +3131,7 @@ static void __gather_stats(void *arg)
 	list_for_each_entry(page, &l->partial, lru) {
 		nr_inuse += page->inuse;
 	}
+	spin_unlock(&l->page_lock);
 
 	spin_lock(&gather->lock);
 	gather->nr_slabs += nr_slabs;

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [patch 4/5] slqb: config slab size
  2009-04-14 16:44 [patch 1/5] slqb: irq section fix Nick Piggin
  2009-04-14 16:45 ` [patch 2/5] slqb: fix compilation warning Nick Piggin
  2009-04-14 16:46 ` [patch 3/5] slqb: cap remote free list size Nick Piggin
@ 2009-04-14 16:46 ` Nick Piggin
  2009-04-14 16:50 ` [patch 5/5] mm: prompt slqb default for oldconfig Nick Piggin
  2009-04-16  8:51 ` [patch 1/5] slqb: irq section fix Pekka Enberg
  4 siblings, 0 replies; 9+ messages in thread
From: Nick Piggin @ 2009-04-14 16:46 UTC (permalink / raw)
  To: Pekka Enberg, Linux Memory Management List

slqb: config slab size

Yanmin Zhang had reported performance increases in a routing stress test
with SLUB using gigantic slab sizes. The theory is either increased TLB
efficiency or reduced page allocator costs. Anyway it is trivial and
basically no overhead to add similar parameters to SLQB to experiment with.

Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Index: linux-2.6/mm/slqb.c
===================================================================
--- linux-2.6.orig/mm/slqb.c	2009-04-15 02:34:09.000000000 +1000
+++ linux-2.6/mm/slqb.c	2009-04-15 02:34:40.000000000 +1000
@@ -56,6 +56,17 @@ static inline void struct_slqb_page_wron
 
 #define PG_SLQB_BIT (1 << PG_slab)
 
+/*
+ * slqb_min_order: minimum allocation order for slabs
+ */
+static int slqb_min_order = 0;
+
+/*
+ * slqb_min_objects: minimum number of objects per slab. Increasing this
+ * will increase the allocation order for slabs with larger objects
+ */
+static int slqb_min_objects = 1;
+
 #ifdef CONFIG_NUMA
 static inline int slab_numa(struct kmem_cache *s)
 {
@@ -856,9 +867,25 @@ check_slabs:
 out:
 	return 1;
 }
-
 __setup("slqb_debug", setup_slqb_debug);
 
+static int __init setup_slqb_min_order(char *str)
+{
+	get_option(&str, &slqb_min_order);
+
+	return 1;
+}
+__setup("slqb_min_order=", setup_slqb_min_order);
+
+static int __init setup_slqb_min_objects(char *str)
+{
+	get_option(&str, &slqb_min_objects);
+
+	return 1;
+}
+
+__setup("slqb_min_objects=", setup_slqb_min_objects);
+
 static unsigned long kmem_cache_flags(unsigned long objsize,
 				unsigned long flags, const char *name,
 				void (*ctor)(void *))
@@ -1758,6 +1785,8 @@ static int slab_order(int size, int max_
 		order = 0;
 	else
 		order = fls(size - 1) - PAGE_SHIFT;
+	if (order < slqb_min_order)
+		order = slqb_min_order;
 
 	while (order <= max_order) {
 		unsigned long slab_size = PAGE_SIZE << order;
@@ -1766,13 +1795,23 @@ static int slab_order(int size, int max_
 
 		objects = slab_size / size;
 		if (!objects)
-			continue;
+			goto next;
+
+		if (order < MAX_ORDER && objects < slqb_min_objects) {
+			/*
+			 * if we don't have enough objects for min_objects,
+			 * then try the next size up. Unless we have reached
+			 * our maximum possible page size.
+			 */
+			goto next;
+		}
 
 		waste = slab_size - (objects * size);
 
 		if (waste * frac <= slab_size)
 			break;
 
+next:
 		order++;
 	}
 

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [patch 5/5] mm: prompt slqb default for oldconfig
  2009-04-14 16:44 [patch 1/5] slqb: irq section fix Nick Piggin
                   ` (2 preceding siblings ...)
  2009-04-14 16:46 ` [patch 4/5] slqb: config slab size Nick Piggin
@ 2009-04-14 16:50 ` Nick Piggin
  2009-04-16  8:55   ` Pekka Enberg
  2009-04-16  8:51 ` [patch 1/5] slqb: irq section fix Pekka Enberg
  4 siblings, 1 reply; 9+ messages in thread
From: Nick Piggin @ 2009-04-14 16:50 UTC (permalink / raw)
  To: Pekka Enberg, Linux Memory Management List

Hi Pekka,

Well there have been reasonably significant changes both for SLQB and
SLUB that I thought it is better to wait one more round before merging
SLQB. Also, SLQB may not have been getting as much testing as it could
have in -next, due to oldconfig choosing existing config as the default.

Thanks,
Nick
--

Change Kconfig names for slab allocator choices to prod SLQB into being
the default. Hopefully increasing testing base.

Signed-off-by: Nick Piggin <npiggin@suse.de>
---
Index: linux-2.6/init/Kconfig
===================================================================
--- linux-2.6.orig/init/Kconfig	2009-04-15 02:36:05.000000000 +1000
+++ linux-2.6/init/Kconfig	2009-04-15 02:41:25.000000000 +1000
@@ -975,18 +975,23 @@ config COMPAT_BRK
 
 choice
 	prompt "Choose SLAB allocator"
-	default SLQB
+	default SLQB_ALLOCATOR
 	help
 	   This option allows to select a slab allocator.
 
-config SLAB
+config SLAB_ALLOCATOR
 	bool "SLAB"
 	help
 	  The regular slab allocator that is established and known to work
 	  well in all environments. It organizes cache hot objects in
 	  per cpu and per node queues.
 
-config SLUB
+config SLAB
+	bool
+	default y
+	depends on SLAB_ALLOCATOR
+
+config SLUB_ALLOCATOR
 	bool "SLUB (Unqueued Allocator)"
 	help
 	   SLUB is a slab allocator that minimizes cache line usage
@@ -996,11 +1001,21 @@ config SLUB
 	   and has enhanced diagnostics. SLUB is the default choice for
 	   a slab allocator.
 
-config SLQB
+config SLUB
+	bool
+	default y
+	depends on SLUB_ALLOCATOR
+
+config SLQB_ALLOCATOR
 	bool "SLQB (Queued allocator)"
 	help
 	  SLQB is a proposed new slab allocator.
 
+config SLQB
+	bool
+	default y
+	depends on SLQB_ALLOCATOR
+
 config SLOB
 	depends on EMBEDDED
 	bool "SLOB (Simple Allocator)"

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [patch 1/5] slqb: irq section fix
  2009-04-14 16:44 [patch 1/5] slqb: irq section fix Nick Piggin
                   ` (3 preceding siblings ...)
  2009-04-14 16:50 ` [patch 5/5] mm: prompt slqb default for oldconfig Nick Piggin
@ 2009-04-16  8:51 ` Pekka Enberg
  4 siblings, 0 replies; 9+ messages in thread
From: Pekka Enberg @ 2009-04-16  8:51 UTC (permalink / raw)
  To: Nick Piggin; +Cc: Linux Memory Management List, cl

On Tue, 2009-04-14 at 18:44 +0200, Nick Piggin wrote:
> slqb: irq section fix
> 
> flush_free_list can be called with interrupts enabled, from
> kmem_cache_destroy. Fix this.
> 
> Signed-off-by: Nick Piggin <npiggin@suse.de>

The series has been applied! Thanks.

			Pekka

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [patch 5/5] mm: prompt slqb default for oldconfig
  2009-04-14 16:50 ` [patch 5/5] mm: prompt slqb default for oldconfig Nick Piggin
@ 2009-04-16  8:55   ` Pekka Enberg
  2009-04-16  9:22     ` Ingo Molnar
  0 siblings, 1 reply; 9+ messages in thread
From: Pekka Enberg @ 2009-04-16  8:55 UTC (permalink / raw)
  To: Nick Piggin; +Cc: Linux Memory Management List, mingo

Hi Nick,

On Tue, 2009-04-14 at 18:50 +0200, Nick Piggin wrote:
> Hi Pekka,
> 
> Well there have been reasonably significant changes both for SLQB and
> SLUB that I thought it is better to wait one more round before merging
> SLQB. Also, SLQB may not have been getting as much testing as it could
> have in -next, due to oldconfig choosing existing config as the default.
> 
> Thanks,
> Nick
> --
> 
> Change Kconfig names for slab allocator choices to prod SLQB into being
> the default. Hopefully increasing testing base.
> 
> Signed-off-by: Nick Piggin <npiggin@suse.de>

I went ahead and applied this too. IIRC, Ingo had some ideas how this
should be handled so lets CC him as well.

			Pekka

> ---
> Index: linux-2.6/init/Kconfig
> ===================================================================
> --- linux-2.6.orig/init/Kconfig	2009-04-15 02:36:05.000000000 +1000
> +++ linux-2.6/init/Kconfig	2009-04-15 02:41:25.000000000 +1000
> @@ -975,18 +975,23 @@ config COMPAT_BRK
>  
>  choice
>  	prompt "Choose SLAB allocator"
> -	default SLQB
> +	default SLQB_ALLOCATOR
>  	help
>  	   This option allows to select a slab allocator.
>  
> -config SLAB
> +config SLAB_ALLOCATOR
>  	bool "SLAB"
>  	help
>  	  The regular slab allocator that is established and known to work
>  	  well in all environments. It organizes cache hot objects in
>  	  per cpu and per node queues.
>  
> -config SLUB
> +config SLAB
> +	bool
> +	default y
> +	depends on SLAB_ALLOCATOR
> +
> +config SLUB_ALLOCATOR
>  	bool "SLUB (Unqueued Allocator)"
>  	help
>  	   SLUB is a slab allocator that minimizes cache line usage
> @@ -996,11 +1001,21 @@ config SLUB
>  	   and has enhanced diagnostics. SLUB is the default choice for
>  	   a slab allocator.
>  
> -config SLQB
> +config SLUB
> +	bool
> +	default y
> +	depends on SLUB_ALLOCATOR
> +
> +config SLQB_ALLOCATOR
>  	bool "SLQB (Queued allocator)"
>  	help
>  	  SLQB is a proposed new slab allocator.
>  
> +config SLQB
> +	bool
> +	default y
> +	depends on SLQB_ALLOCATOR
> +
>  config SLOB
>  	depends on EMBEDDED
>  	bool "SLOB (Simple Allocator)"

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [patch 5/5] mm: prompt slqb default for oldconfig
  2009-04-16  8:55   ` Pekka Enberg
@ 2009-04-16  9:22     ` Ingo Molnar
  2009-04-16  9:30       ` Nick Piggin
  0 siblings, 1 reply; 9+ messages in thread
From: Ingo Molnar @ 2009-04-16  9:22 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: Nick Piggin, Linux Memory Management List


* Pekka Enberg <penberg@cs.helsinki.fi> wrote:

> Hi Nick,
> 
> On Tue, 2009-04-14 at 18:50 +0200, Nick Piggin wrote:
> > Hi Pekka,
> > 
> > Well there have been reasonably significant changes both for SLQB and
> > SLUB that I thought it is better to wait one more round before merging
> > SLQB. Also, SLQB may not have been getting as much testing as it could
> > have in -next, due to oldconfig choosing existing config as the default.
> > 
> > Thanks,
> > Nick
> > --
> > 
> > Change Kconfig names for slab allocator choices to prod SLQB into being
> > the default. Hopefully increasing testing base.
> > 
> > Signed-off-by: Nick Piggin <npiggin@suse.de>
> 
> I went ahead and applied this too. IIRC, Ingo had some ideas how 
> this should be handled so lets CC him as well.

I forgot it all already :)

Btw., i'm wondering, why didnt this make it into .30?

	Ingo

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [patch 5/5] mm: prompt slqb default for oldconfig
  2009-04-16  9:22     ` Ingo Molnar
@ 2009-04-16  9:30       ` Nick Piggin
  0 siblings, 0 replies; 9+ messages in thread
From: Nick Piggin @ 2009-04-16  9:30 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Pekka Enberg, Linux Memory Management List

On Thu, Apr 16, 2009 at 11:22:38AM +0200, Ingo Molnar wrote:
> 
> * Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> 
> > Hi Nick,
> > 
> > On Tue, 2009-04-14 at 18:50 +0200, Nick Piggin wrote:
> > > Hi Pekka,
> > > 
> > > Well there have been reasonably significant changes both for SLQB and
> > > SLUB that I thought it is better to wait one more round before merging
> > > SLQB. Also, SLQB may not have been getting as much testing as it could
> > > have in -next, due to oldconfig choosing existing config as the default.
> > > 
> > > Thanks,
> > > Nick
> > > --
> > > 
> > > Change Kconfig names for slab allocator choices to prod SLQB into being
> > > the default. Hopefully increasing testing base.
> > > 
> > > Signed-off-by: Nick Piggin <npiggin@suse.de>
> > 
> > I went ahead and applied this too. IIRC, Ingo had some ideas how 
> > this should be handled so lets CC him as well.
> 
> I forgot it all already :)

I think I roughly followed consensus. Basically just rename the choices
so oldconfig will default to Kconfig specified rather than the existing
.config choice. We can just revert this little shim eventually.
 

> Btw., i'm wondering, why didnt this make it into .30?

Well, there was a flurry of activity on SLUB, and also one relatively
significant change to SLQB, so in the interest of getting a more uptodate
comparison, I think it better to wait one more round.

--
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>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-04-16  9:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-14 16:44 [patch 1/5] slqb: irq section fix Nick Piggin
2009-04-14 16:45 ` [patch 2/5] slqb: fix compilation warning Nick Piggin
2009-04-14 16:46 ` [patch 3/5] slqb: cap remote free list size Nick Piggin
2009-04-14 16:46 ` [patch 4/5] slqb: config slab size Nick Piggin
2009-04-14 16:50 ` [patch 5/5] mm: prompt slqb default for oldconfig Nick Piggin
2009-04-16  8:55   ` Pekka Enberg
2009-04-16  9:22     ` Ingo Molnar
2009-04-16  9:30       ` Nick Piggin
2009-04-16  8:51 ` [patch 1/5] slqb: irq section fix Pekka Enberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).