On Thu, 28 Aug 2014, WANG Chao wrote:

> What about failslab_store()? SLAB_FAILSLAB is also a nomerge flag.


Subject: slub: Disable tracing and failslab for merged slabs

Tracing of mergeable slabs as well as uses of failslab are
confusing since the objects of multiple slab caches will be
affected. Moreover this creates a situation where a mergeable
slab will become unmergeable.

If tracing or failslab testing 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-28 09:45:58.748840392 -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;
@@ -4721,6 +4729,9 @@ static ssize_t failslab_show(struct kmem
 static ssize_t failslab_store(struct kmem_cache *s, const char *buf,
                                                        size_t length)
 {
+       if (s->refcount > 1)
+               return -EINVAL;
+
        s->flags &= ~SLAB_FAILSLAB;
        if (buf[0] == '1')
                s->flags |= SLAB_FAILSLAB;
--
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