[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20150121142107.e26d5ebf3340aa91759fef1f@linux-foundation.org>
Date: Wed, 21 Jan 2015 14:21:07 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
To: Michal Hocko <mhocko@...e.cz>
Cc: Krzysztof Kozłowski <k.kozlowski.k@...il.com>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Christoph Lameter <cl@...ux.com>,
Jesper Dangaard Brouer <brouer@...hat.com>,
linux-mm@...ck.org, LKML <linux-kernel@...r.kernel.org>
Subject: Re: mmotm:
mm-slub-optimize-alloc-free-fastpath-by-removing-preemption-on-off.patch is
causing preemptible splats
On Wed, 21 Jan 2015 15:11:38 +0100 Michal Hocko <mhocko@...e.cz> wrote:
> On Wed 21-01-15 15:06:03, Krzysztof Koz__owski wrote:
> [...]
> > Same here :) [1] . So actually only ARM seems affected (both armv7 and
> > armv8) because it is the only one which uses smp_processor_id() in
> > my_cpu_offset.
>
> This was on x86_64 with CONFIG_DEBUG_PREEMPT so it is not only ARM
> specific.
>
Hopefully
mm-slub-optimize-alloc-free-fastpath-by-removing-preemption-on-off-v3.patch
will fix this.
The most recent -mmotm was a bit of a trainwreck. I'm scrambling to
get the holes plugged so I can get another mmotm out today.
From: Joonsoo Kim <iamjoonsoo.kim@....com>
Subject: mm/slub: optimize alloc/free fastpath by removing preemption on/off
Change from v2:
- use raw_cpu_ptr() rather than this_cpu_ptr() to avoid warning from
preemption debug check since this is intended behaviour
- fix typo alogorithm -> algorithm
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@....com>
Acked-by: Christoph Lameter <cl@...ux.com>
Acked-by: Jesper Dangaard Brouer <brouer@...hat.com>
Tested-by: Jesper Dangaard Brouer <brouer@...hat.com>
Cc: Pekka Enberg <penberg@...nel.org>
Cc: David Rientjes <rientjes@...gle.com>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
---
mm/slub.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff -puN mm/slub.c~mm-slub-optimize-alloc-free-fastpath-by-removing-preemption-on-off-v3 mm/slub.c
--- a/mm/slub.c~mm-slub-optimize-alloc-free-fastpath-by-removing-preemption-on-off-v3
+++ a/mm/slub.c
@@ -2404,11 +2404,11 @@ redo:
*/
do {
tid = this_cpu_read(s->cpu_slab->tid);
- c = this_cpu_ptr(s->cpu_slab);
+ c = raw_cpu_ptr(s->cpu_slab);
} while (IS_ENABLED(CONFIG_PREEMPT) && unlikely(tid != c->tid));
/*
- * Irqless object alloc/free alogorithm used here depends on sequence
+ * Irqless object alloc/free algorithm used here depends on sequence
* of fetching cpu_slab's data. tid should be fetched before anything
* on c to guarantee that object and page associated with previous tid
* won't be used with current tid. If we fetch tid first, object and
@@ -2670,7 +2670,7 @@ redo:
*/
do {
tid = this_cpu_read(s->cpu_slab->tid);
- c = this_cpu_ptr(s->cpu_slab);
+ c = raw_cpu_ptr(s->cpu_slab);
} while (IS_ENABLED(CONFIG_PREEMPT) && unlikely(tid != c->tid));
/* Same with comment on barrier() in slab_alloc_node() */
_
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists