[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090430082711.GA24819@hack>
Date: Thu, 30 Apr 2009 16:27:11 +0800
From: Américo Wang <xiyou.wangcong@...il.com>
To: Renzo Davoli <renzo@...unibo.it>
Cc: Am??rico Wang <xiyou.wangcong@...il.com>,
linux-kernel@...r.kernel.org, Jeff Dike <jdike@...toit.com>,
user-mode-linux-devel@...ts.sourceforge.net,
mtk.manpages@...il.com, Roland McGrath <roland@...hat.com>
Subject: Re: [PATCH 0/2] ptrace_vm: ptrace for syscall emulation virtual
machines
On Sat, Apr 25, 2009 at 11:19:28AM +0200, Renzo Davoli wrote:
>
>UML on UML stopped working long time ago, I wrote a note on it
>on March 8. See:
>http://article.gmane.org/gmane.linux.uml.devel/12085
>Here I am having the same behavior with and without my patches, thus
>(in my opinion) the bug is not related with the new tags.
Hmm, I thought these two patches of you are aimed to solve this,
but they are not, right?
>
>It seems that there are some problems on the virtual memory
>when UML runs UML.
>With older kernels (<2.6.28.2) the error is:
>Eeek! page_mapcount(page) went negative! (-1)
>the error is still there now but the message I get is different:
>
>BUG: Bad page map in process linux.umlv2 pte:00164045 pmd:07b5e1e1
>page:08905c80 flags:00000400 count:-2 mapcount:-4 mapping:(null) index:0
>addr:00100000 vm_flags:00060055 anon_vma:(null) mapping:(null) index:100
>vma->vm_ops->fault: special_mapping_fault+0x0/0x47
>0fc01d64: [<081a9c5a>] dump_stack+0x1c/0x20
>0fc01d7c: [<080a233f>] print_bad_pte+0x16d/0x17d
>0fc01dac: [<080a2c20>] unmap_vmas+0x273/0x46f
>0fc01e04: [<080a5c69>] unmap_region+0x82/0xfe
>0fc01e3c: [<080a68b1>] do_munmap+0x1f6/0x245
>0fc01e6c: [<080a7118>] mmap_region+0xc4/0x3fd
>0fc01eb8: [<080a765b>] do_mmap_pgoff+0x20a/0x253
>0fc01ef0: [<08059b2f>] sys_mmap2+0x60/0x8e
>0fc01f28: [<0805b0df>] handle_syscall+0x7f/0x9c
>0fc01f78: [<0806a27a>] userspace+0x2d0/0x377
>0fc01fe0: [<08058e38>] fork_handler+0x53/0x5b
>0fc01ffc: [<00000000>] 0x0
>(and then many others)
>It seems that the page table of the UML process inside UML gets garbled:
>I think that neither "count" should never reach -2 nor "mapcount" -4.
>
>The numbers of count and mapcount decrease at each faulty UML execution
>(the following are outputs of tests without my patch)
>$ ./linux ....
>0> page:08905d00 flags:00000400 count:1 mapcount:-1 mapping:(null) index:0
>$ ./linux ....
>1> page:08905d00 flags:00000400 count:0 mapcount:-2 mapping:(null) index:0
>2> page:08905d00 flags:00000400 count:-1 mapcount:-3 mapping:(null) index:0
>3> page:08905d00 flags:00000400 count:-2 mapcount:-4 mapping:(null) index:0
>
>It seems that a page gets released twice.
I will take a look at this...
>
>I have successfully tested my paches in various configurations:
>- patched-kernel running patched-UML
>- patched-kernel running unpatched-UML
>- patched-kernel running umview
>- patched-UML running umview
>- UML on UML fails in the same way with and without the patch.
>I am currently running the patched kernel on my laptop.
Thanks, I will give them another testing soon...
--
Live like a child, think like the god.
--
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