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

richard -rw- weinberger
2013-03-14T20:51:28Z

[-- Attachment #1: Type: text/plain, Size: 2402 bytes --]

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 ]---
>
>
> for an UML guest (stable Gentoo x86) with kernel version 3.9-rc2-.... running at a host
> which is a stable x86 Gentoo with kernel 3.7.10
>
> The kernel config of the UML guest is attached.

Can you please re-run with the attached patch.
I'm wondering how much memory is requested.
>From reading the source I'd say it must be less than PAGE_SIZE.
But such a small allocation would not trigger the WARN_ON()...

--
Thanks,
//richard

[-- Attachment #2: memdump_user.diff --]
[-- Type: application/octet-stream, Size: 365 bytes --]

diff --git a/mm/util.c b/mm/util.c
index ab1424d..86e8e92 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -89,6 +89,8 @@ void *memdup_user(const void __user *src, size_t len)
{
void *p;

+ printk(KERN_ERR "memdup_user: %i\n", len);
+
/*
* Always use GFP_KERNEL, since copy_from_user() can sleep and
* cause pagefault, which makes it pointless to use GFP_NOFS