Maybe something like this may be a proper fix:

Subject: slub: Disable tracing of mergeable slabs

Tracing of mergeable slabs is confusing since the objects
of multiple slab caches will be traced. Moreover this creates
a situation where a mergeable slab will become unmergeable.

If tracing is desired then it may be best to switch merging
off for starters.

Signed-off-by: Christoph Lameter <c...@linux.com>

Index: linux/mm/slub.c
===================================================================
--- linux.orig/mm/slub.c        2014-08-08 11:52:30.039681592 -0500
+++ linux/mm/slub.c     2014-08-27 10:30:16.508108726 -0500
@@ -4604,6 +4604,14 @@ static ssize_t trace_show(struct kmem_ca
 static ssize_t trace_store(struct kmem_cache *s, const char *buf,
                                                        size_t length)
 {
+       /*
+        * Tracing a merged cache is going to give confusing results
+        * as well as cause other issues like converting a mergeable
+        * cache into an umergeable one.
+        */
+       if (s->refcount > 1)
+               return -EINVAL;
+
        s->flags &= ~SLAB_TRACE;
        if (buf[0] == '1') {
                s->flags &= ~__CMPXCHG_DOUBLE;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to