Re: SLAB + UML : WARNING: at mm/page_alloc.c:2386

richard -rw- weinberger
2013-03-14T19:53:09Z

On Thu, Mar 14, 2013 at 8:07 PM, Toralf Förster <toralf.foerster@gmx.de> wrote:
> The following WARNING: can be triggered sometimes with trinity [1] under a user mode linux image
> using the SLUB allocator (and not with SLAB)
>
>
> 2013-03-14T19:09:51.071+01:00 trinity kernel: ------------[ cut here ]------------
> 2013-03-14T19:09:51.071+01:00 trinity kernel: WARNING: at mm/page_alloc.c:2386 __alloc_pages_nodemask+0x153/0x750()
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fd14: [<08342dd8>] dump_stack+0x22/0x24
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fd2c: [<0807d0da>] warn_slowpath_common+0x5a/0x80
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fd54: [<0807d1a3>] warn_slowpath_null+0x23/0x30
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fd64: [<080d3213>] __alloc_pages_nodemask+0x153/0x750
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fdf0: [<080d3838>] __get_free_pages+0x28/0x50
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fe08: [<080fc48f>] __kmalloc_track_caller+0x3f/0x180
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fe30: [<080dec76>] memdup_user+0x26/0x70
> 2013-03-14T19:09:51.071+01:00 trinity kernel: 3899fe4c: [<080dee7e>] strndup_user+0x3e/0x60
> 2013-03-14T19:09:51.076+01:00 trinity kernel: 3899fe68: [<0811b440>] copy_mount_string+0x30/0x50
> 2013-03-14T19:09:51.076+01:00 trinity kernel: 3899fe7c: [<0811be0a>] sys_mount+0x1a/0xe0
> 2013-03-14T19:09:51.076+01:00 trinity kernel: 3899feac: [<08062a92>] handle_syscall+0x82/0xb0
> 2013-03-14T19:09:51.076+01:00 trinity kernel: 3899fef4: [<08074e7d>] userspace+0x46d/0x590
> 2013-03-14T19:09:51.076+01:00 trinity kernel: 3899ffec: [<0805f7cc>] fork_handler+0x6c/0x70
> 2013-03-14T19:09:51.076+01:00 trinity kernel: 3899fffc: [<5a5a5a5a>] 0x5a5a5a5a
> 2013-03-14T19:09:51.076+01:00 trinity kernel:
> 2013-03-14T19:09:51.076+01:00 trinity kernel: ---[ end trace fd6f346f805efdbe ]---

Looks like strndup_user() triggers the issue.
In another trace also strndup_user() appeared.
--
Thanks,
//richard