Re: [linux-next:master 12891/13017] mm/slub.c:2396:1: warning: '___slab_alloc' uses dynamic stack allocation

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

 



On Wed, 11 Nov 2015 12:41:08 -0800
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Wed, 11 Nov 2015 14:34:19 +0800 kbuild test robot <fengguang.wu@xxxxxxxxx> wrote:
> 
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > head:   2bba65ab5f9f1cebd21d95c410b96952851f58b3
> > commit: e191357c4c31d02eb30736a49327ef32407fab47 [12891/13017] slub: create new ___slab_alloc function that can be called with irqs disabled
> > config: s390-allmodconfig (attached as .config)
> > reproduce:
> >         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> >         chmod +x ~/bin/make.cross
> >         git checkout e191357c4c31d02eb30736a49327ef32407fab47
> >         # save the attached .config to linux build tree
> >         make.cross ARCH=s390 
> > 
> > All warnings (new ones prefixed by >>):
> > 
> >    mm/slub.c: In function 'unfreeze_partials.isra.42':
> >    mm/slub.c:2019:1: warning: 'unfreeze_partials.isra.42' uses dynamic stack allocation
> >     }
> >     ^
> >    mm/slub.c: In function 'get_partial_node.isra.43':
> >    mm/slub.c:1654:1: warning: 'get_partial_node.isra.43' uses dynamic stack allocation
> >     }
> >     ^
> >    mm/slub.c: In function 'deactivate_slab':
> >    mm/slub.c:1951:1: warning: 'deactivate_slab' uses dynamic stack allocation
> >     }
> >     ^
> >    mm/slub.c: In function '__slab_free':
> >    mm/slub.c:2696:1: warning: '__slab_free' uses dynamic stack allocation
> >     }
> >     ^
> >    mm/slub.c: In function '___slab_alloc':
> > >> mm/slub.c:2396:1: warning: '___slab_alloc' uses dynamic stack allocation
> >     }
> >     ^
> 
> This patch doesn't add any dynamic stack allocations.  The fact that
> slub.c already had a bunch of these warnings makes me suspect that it's
> happening in one of the s390 headers?
 
That looks like a false positive to me. I can not find any function that does
a dynamic allocation and the generated code creates a stack frame with a
constant size. A bit odd is the fact that the stack frame is create in two
steps, e.g. deactivate_slab:

    a632:       b9 04 00 ef             lgr     %r14,%r15
    a636:       a7 fb ff 50             aghi    %r15,-176	# first 176 bytes
    a63a:       b9 04 00 bf             lgr     %r11,%r15
    a63e:       e3 e0 f0 98 00 24       stg     %r14,152(%r15)
    a644:       e3 10 f0 98 00 04       lg      %r1,152(%r15)
    a64a:       a7 fb ff 30             aghi    %r15,-208	# another 208 bytes
    a64e:       e3 30 b0 e8 00 24       stg     %r3,232(%r11)
    a654:       e3 40 b0 d8 00 24       stg     %r4,216(%r11)

Strange. Andreas can you make something of this?

-- 
blue skies,
   Martin.

"Reality continues to ruin my life." - Calvin.

--
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]