Re: [3.11 1/4] slub: Make cpu partial slab support configurable V2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2013-07-02 at 16:47 +0000, Christoph Lameter wrote:
> On Tue, 2 Jul 2013, Clark Williams wrote:
> 
> > What's your recommended method for switching cpu_partial processing
> > off?
> >
> > I'm not all that keen on repeatedly traversing /sys/kernel/slab looking
> > for 'cpu_partial' entries, mainly because if you do it at boot time
> > (i.e. from a startup script) you miss some of the entries.
> 
> Merge the patch that makes a config option and compile it out of the
> kernel?

When I run a stress test of the box (kernel compile along with
hackbench), with that patch applied, the system hangs for long periods
of time. I have no idea why, but the oom killer would trigger
constantly.

Anyway, I'm thinking of just applying this patch. I think it would work
for -rt.

-- Steve

diff --git a/mm/slub.c b/mm/slub.c
index 75a8ffd..a288e72 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -124,6 +124,18 @@ static inline int kmem_cache_debug(struct kmem_cache *s)
 #endif
 }
 
+#ifdef CONFIG_PREEMPT_RT_FULL
+static inline int kmem_cache_debug_rt(struct kmem_cache *s)
+{
+	return 1;
+}
+#else
+static inline int kmem_cache_debug_rt(struct kmem_cache *s)
+{
+	return kmem_cache_debug(s);
+}
+#endif
+
 /*
  * Issues still to be resolved:
  *
@@ -3147,7 +3159,7 @@ static int kmem_cache_open(struct kmem_cache *s,
 	 *    per node list when we run out of per cpu objects. We only fetch 50%
 	 *    to keep some capacity around for frees.
 	 */
-	if (kmem_cache_debug(s))
+	if (kmem_cache_debug_rt(s))
 		s->cpu_partial = 0;
 	else if (s->size >= PAGE_SIZE)
 		s->cpu_partial = 2;


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]