Current-Users archive

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

Re: ATF t_mlock() babylon5 kernel panics



OK, with DIAGNOSTIC enabled, and with this patch made:

--- uvm_page.c  19 May 2018 15:03:26 -0000      1.198
+++ uvm_page.c  13 Mar 2019 08:51:11 -0000
@@ -1605,9 +1605,11 @@
 uvm_pageunwire(struct vm_page *pg)
 {
        KASSERT(mutex_owned(&uvm_pageqlock));
+       KASSERT(pg->wire_count != 0);
        pg->wire_count--;
        if (pg->wire_count == 0) {
                uvm_pageactivate(pg);
+               KASSERT(uvmexp.wired != 0);
                uvmexp.wired--;
        }
 }

I now get a *very* quick panic...

t_mlock: pagesize 4096
tp-start: 1552467032.204169, t_mlock, 5
tc-start: 1552467032.204178, mlock_clip
[  47.4101095] pmap_unwire: wiring for pmap 0xffffaf80023f6b40 va 0x7f7ff7ed6000 did not change!
[  47.4101095] panic: kernel diagnostic assertion "pg->wire_count != 0" failed: file "/readonly/release/testing/src/sys/uvm/uvm_page.c", line 1608 
[  47.4101095] cpu0: Begin traceback...
[  47.4101095] vpanic() at netbsd:vpanic+0x143
[  47.4101095] kern_assert() at netbsd:kern_assert+0x48
[  47.4101095] uvm_pageunwire() at netbsd:uvm_pageunwire+0x81
[  47.4101095] uvm_fault_unwire_locked() at netbsd:uvm_fault_unwire_locked+0x138
[  47.4101095] uvm_map_pageable() at netbsd:uvm_map_pageable+0x346
[  47.4101095] sys_munlock() at netbsd:sys_munlock+0x63
[  47.4101095] syscall() at netbsd:syscall+0x9c
[  47.4101095] --- syscall (number 204) ---
[  47.4101095] 7f7ff7042ffa:
[  47.4101095] cpu0: End traceback...
[  47.4101095] fatal breakpoint trap in supervisor mode
[  47.4101095] trap type 1 code 0 rip 0xffffffff802059b5 cs 0xe030 rflags 0x202 cr2 0x7f7ff7ed6000 ilevel 0 rsp 0xffffaf804d94cd10
[  47.4101095] curlwp 0xffffaf80024f4b00 pid 364.1 lowest kstack 0xffffaf804d9482c0
Stopped in pid 364.1 (t_mlock) at       netbsd:breakpoint+0x5:  leave
breakpoint() at netbsd:breakpoint+0x5
vpanic() at netbsd:vpanic+0x143
kern_assert() at netbsd:kern_assert+0x48
uvm_pageunwire() at netbsd:uvm_pageunwire+0x81
uvm_fault_unwire_locked() at netbsd:uvm_fault_unwire_locked+0x138
uvm_map_pageable() at netbsd:uvm_map_pageable+0x346
sys_munlock() at netbsd:sys_munlock+0x63
syscall() at netbsd:syscall+0x9c
--- syscall (number 204) ---
7f7ff7042ffa:
ds          cd20
es          ccd0
fs          cd10
gs          10
rdi         0
rsi         ffffaf804d94cabc
rbp         ffffaf804d94cd10
rbx         104
rdx         1
rcx         0
rax         0
r8          ffffffff805b2780    cpu_info_primary
r9          3e93e7
r10         0
r11         0
r12         ffffffff80502e70    ostype+0xab0
r13         ffffaf804d94cd58
r14         ffffffff805202f0    ostype+0x1df30
r15         ffffaf80023f5730
rip         ffffffff802059b5    breakpoint+0x5
cs          e030
rflags      202
rsp         ffffaf804d94cd10
ss          e02b
netbsd:breakpoint+0x5:  leave

And the system is left sitting in ddb (which I also enabled for
this) so if anyone can think of anything I should be looking at
to help diagnose this, now would be the time to tell me!

The mlock_clip() test is the first one run.   It can be seen in
    .../src/tests/lib/libc/sys/t_mlock.c

But I have non-computer work to do for a couple of hours, so this
will be the last you hear from me about this for a while.

kre



Home | Main Index | Thread Index | Old Index