BUG: enable_cpucache failed for radix_tree_node, error 12 (was: Re: [PATCH v3 9/9] slab: remove BAD_ALIEN_MAGIC)

From: Geert Uytterhoeven
Date: Thu Aug 07 2014 - 07:52:13 EST


Hi Joonsoo,

On Tue, Jul 1, 2014 at 10:27 AM, Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> wrote:
> BAD_ALIEN_MAGIC value isn't used anymore. So remove it.
>
> Acked-by: Christoph Lameter <cl@xxxxxxxxx>
> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
> ---
> mm/slab.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/mm/slab.c b/mm/slab.c
> index 7820a45..60c9e11 100644
> --- a/mm/slab.c
> +++ b/mm/slab.c
> @@ -470,8 +470,6 @@ static struct kmem_cache kmem_cache_boot = {
> .name = "kmem_cache",
> };
>
> -#define BAD_ALIEN_MAGIC 0x01020304ul
> -
> static DEFINE_PER_CPU(struct delayed_work, slab_reap_work);
>
> static inline struct array_cache *cpu_cache_get(struct kmem_cache *cachep)
> @@ -838,7 +836,7 @@ static int transfer_objects(struct array_cache *to,
> static inline struct alien_cache **alloc_alien_cache(int node,
> int limit, gfp_t gfp)
> {
> - return (struct alien_cache **)BAD_ALIEN_MAGIC;
> + return NULL;
> }

With latest mainline, I'm getting a crash during bootup on m68k/ARAnyM:

enable_cpucache failed for radix_tree_node, error 12.
kernel BUG at /scratch/geert/linux/linux-m68k/mm/slab.c:1522!
*** TRAP #7 *** FORMAT=0
Current process id is 0
BAD KERNEL TRAP: 00000000
Modules linked in:
PC: [<0039c92c>] kmem_cache_init_late+0x70/0x8c
SR: 2200 SP: 00345f90 a2: 0034c2e8
d0: 0000003d d1: 00000000 d2: 00000000 d3: 003ac942
d4: 00000000 d5: 00000000 a0: 0034f686 a1: 0034f682
Process swapper (pid: 0, task=0034c2e8)
Frame format=0
Stack from 00345fc4:
002f69ef 002ff7e5 000005f2 000360fa 0017d806 003921d4 00000000 00000000
00000000 00000000 00000000 00000000 003ac942 00000000 003912d6
Call Trace: [<000360fa>] parse_args+0x0/0x2ca
[<0017d806>] strlen+0x0/0x1a
[<003921d4>] start_kernel+0x23c/0x428
[<003912d6>] _sinittext+0x2d6/0x95e

Code: f7e5 4879 002f 69ef 61ff ffca 462a 4e47 <4879> 0035 4b1c 61ff
fff0 0cc4 7005 23c0 0037 fd20 588f 265f 285f 4e75 48e7 301c
Disabling lock debugging due to kernel taint
Kernel panic - not syncing: Attempted to kill the idle task!
---[ end Kernel panic - not syncing: Attempted to kill the idle task!

I bisected it to commit a640616822b2c3a8009b0600f20c4a76ea8a0025
Author: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Date: Wed Aug 6 16:04:38 2014 -0700

slab: remove BAD_ALIEN_MAGIC

BAD_ALIEN_MAGIC value isn't used anymore. So remove it.

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

Error 12 is ENOMEM, so I first thought it went out-of-memory, but just reverting
the above commit on mainline makes it work again.

I don't see the failure on ARM.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/