Toralf,
Am 01.05.2014 17:15, schrieb Toralf Förster:
> On 05/01/2014 02:33 PM, Richard Weinberger wrote:
>> Am 01.05.2014 12:29, schrieb Toralf Förster:
>>> On 05/01/2014 11:22 AM, Richard Weinberger wrote:
>>>> On Wed, Apr 30, 2014 at 8:19 PM, Toralf Förster <toralf.foers...@gmx.de>
>>>> wrote:
>>>>> -or- it uncovers a bug in kernel v3.15-rc3 for UML:
>>>>
>>>> UML most not panic. :)
>>>>
>>>> Do you have the trinity logs?
>>>> I'd like to know the syscalls parameters.
>>> I run trinity with "-C 2 -c mremap" within the guest, the logs are attached
>>
>> Can you please try the attached pre-patch?
>> It looks like the panic() in that code is an overreaction.
>> I'm currently looking deeper in the issue.
>>
>> BTW: If you hit "BUG: failure at
>> mm/filemap.c:202/__delete_from_page_cache()!",
>> this is a known issue https://lkml.org/lkml/2014/4/15/577
>>
>> Thanks,
>> //richard
>>
>
> That patch helps a lot, in the syslog I do now get :
>
> May 1 17:13:48 trinity kernel: Stub registers -
> May 1 17:13:48 trinity kernel: 0 - 100000
> May 1 17:13:48 trinity kernel: 1 - 2000
> May 1 17:13:48 trinity kernel: 2 - 0
> May 1 17:13:48 trinity kernel: 3 - 0
> May 1 17:13:48 trinity kernel: 4 - 0
> May 1 17:13:48 trinity kernel: 5 - 0
> May 1 17:13:48 trinity kernel: 6 - 0
> May 1 17:13:48 trinity kernel: 7 - 7b
> May 1 17:13:48 trinity kernel: 8 - 7b
> May 1 17:13:48 trinity kernel: 9 - 0
> May 1 17:13:48 trinity kernel: 10 - 33
> May 1 17:13:48 trinity kernel: 11 - ffffffff
> May 1 17:13:48 trinity kernel: 12 - 1000c3
> May 1 17:13:48 trinity kernel: 13 - 73
> May 1 17:13:48 trinity kernel: 14 - 10206
> May 1 17:13:48 trinity kernel: 15 - 101028
> May 1 17:13:48 trinity kernel: 16 - 7b
> May 1 17:13:48 trinity kernel: wait_stub_done : failed to wait for SIGTRAP,
> pid = 14757, n = 14757, errno = 0, status = 0xb7f
> May 1 17:13:48 trinity kernel: do_syscall_stub : ret = 0, offset = 1052680,
> data = 47788008
> May 1 17:13:48 trinity kernel: do_syscall_stub: syscall 91 failed, return
> value = 0x0, expected return value = 0x0
> May 1 17:13:48 trinity kernel: syscall parameters: 0x100000 0x2000 0x0 0x0
> 0x0 0x0
> May 1 17:13:48 trinity kernel: Registers -
> May 1 17:13:48 trinity kernel: 0 0x2c92
> May 1 17:13:48 trinity kernel: 1 0x13
> May 1 17:13:48 trinity kernel: 2 0x2c92
> May 1 17:13:48 trinity kernel: 3 0x2c8e
> May 1 17:13:48 trinity kernel: 4 0xbfa39508
> May 1 17:13:48 trinity kernel: 5 0xbfa394ec
> May 1 17:13:48 trinity kernel: 6 0x0
> May 1 17:13:48 trinity kernel: 7 0x7b
> May 1 17:13:48 trinity kernel: 8 0x7b
> May 1 17:13:48 trinity kernel: 9 0x0
> May 1 17:13:48 trinity kernel: 10 0x33
> May 1 17:13:48 trinity kernel: 11 0x25
> May 1 17:13:48 trinity kernel: 12 0x1000a0
> May 1 17:13:48 trinity kernel: 13 0x73
> May 1 17:13:48 trinity kernel: 14 0x246
> May 1 17:13:48 trinity kernel: 15 0xbfa394b8
> May 1 17:13:48 trinity kernel: 16 0x7b
> May 1 17:13:48 trinity kernel: do_syscall_stub : PTRACE_SETREGS failed, pid
> = 14757, errno = 3
> May 1 17:13:48 trinity kernel: fix_range_common: failed, killing current
> process
> May 1 17:13:48 trinity kernel: BUG: Bad rss-counter state mm:475aab40 idx:0
> val:1
> May 1 17:13:48 trinity kernel: Stub registers -
> May 1 17:13:48 trinity kernel: 0 - 100000
> May 1 17:13:48 trinity kernel: 1 - 2000
> May 1 17:13:48 trinity kernel: 2 - 0
> May 1 17:13:48 trinity kernel: 3 - 0
> May 1 17:13:48 trinity kernel: 4 - 0
> May 1 17:13:48 trinity kernel: 5 - 0
> May 1 17:13:48 trinity kernel: 6 - 0
> May 1 17:13:48 trinity kernel: 7 - 7b
> May 1 17:13:48 trinity kernel: 8 - 7b
> May 1 17:13:48 trinity kernel: 9 - 0
> May 1 17:13:48 trinity kernel: 10 - 33
> May 1 17:13:48 trinity kernel: 11 - ffffffff
> May 1 17:13:48 trinity kernel: 12 - 1000c3
> May 1 17:13:48 trinity kernel: 13 - 73
> May 1 17:13:48 trinity kernel: 14 - 10206
> May 1 17:13:48 trinity kernel: 15 - 101028
> May 1 17:13:48 trinity kernel: 16 - 7b
> May 1 17:13:48 trinity kernel: wait_stub_done : failed to wait for SIGTRAP,
> pid = 14758, n = 14758, errno = 0, status = 0xb7f
> May 1 17:13:48 trinity kernel: do_syscall_stub : ret = 0, offset = 1052680,
> data = 477a9008
> May 1 17:13:48 trinity kernel: do_syscall_stub: syscall 91 failed, return
> value = 0x0, expected return value = 0x0
> May 1 17:13:48 trinity kernel: syscall parameters: 0x100000 0x2000 0x0 0x0
> 0x0 0x0
Yeah, this is because trinity destroys the UML stub code.
Please test the attached patch, it should fix the root cause of the problem.
Thanks,
//richard
diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c
index 9472079..f1b3eb1 100644
--- a/arch/um/kernel/tlb.c
+++ b/arch/um/kernel/tlb.c
@@ -12,6 +12,7 @@
#include <mem_user.h>
#include <os.h>
#include <skas.h>
+#include <kern_util.h>
struct host_vm_change {
struct host_vm_op {
@@ -124,6 +125,9 @@ static int add_munmap(unsigned long addr, unsigned long len,
struct host_vm_op *last;
int ret = 0;
+ if ((addr >= STUB_START) && (addr < STUB_END))
+ return -EINVAL;
+
if (hvc->index != 0) {
last = &hvc->ops[hvc->index - 1];
if ((last->type == MUNMAP) &&
@@ -283,8 +287,11 @@ void fix_range_common(struct mm_struct *mm, unsigned long start_addr,
/* This is not an else because ret is modified above */
if (ret) {
printk(KERN_ERR "fix_range_common: failed, killing current "
- "process\n");
+ "process: %d\n", task_tgid_vnr(current));
+ /* We are under mmap_sem, release it such that current can terminate */
+ up_write(¤t->mm->mmap_sem);
force_sig(SIGKILL, current);
+ do_signal();
}
}
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos. Get
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel