Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
re: More amd64 drmkms radeon
> Now it panics (and rebuilt the X server with symbols just in case):
>
> panic: kernel diagnostic assertion "uvm_page_locked_p(pg)" failed: file
> "../../../../arch/x86/x86/pmap.c", line 3316
> cpu1: Begin traceback...
> vpanic() at netbsd:vpanic+0x13c
> kern_assert() at netbsd:kern_assert+0x4f
> pmap_remove_pte() at netbsd:pmap_remove_pte+0x2c6
> pmap_remove() at netbsd:pmap_remove+0x1ff
> uvm_unmap_remove() at netbsd:uvm_unmap_remove+0x283
> sys_munmap() at netbsd:sys_munmap+0x8a
> syscall() at netbsd:syscall+0x187
> --- syscall (number 73) ---
> 7f7ff430171a:
> cpu1: End traceback...
>
> I seem to have acquired a successful kernel core dump too...
this problem is caused by the pmap_remove() taking the pmap->pm_lock,
but the page being removed not being held by that lock, so the assert
that this page is locked failed. it belongs to a different uobject.
i have no idea why or how to fix it.
i instrumented this a little last weekend, to keep track of the last
few pages being freed via pmap_remove_pte(), and this is what we have:
pmap_remove_pte: not locked pg 0xffff800003401b18 va 0x7f7fecb00000
opg[0..3] = 0xffff8000038d2548 0xffff8000038d2548 0xffff8000038d2548
0xffff8000038ca7a8
opm[0..3] = 0xffffffff80df0ac0 0xffffffff80df0ac0 0xffffffff80df0ac0
0xffffffff80df0ac0
panic: kernel diagnostic assertion "uvm_page_locked_p(pg)" failed: file
"/usr/src4/sys/arch/x86/x86/pmap.c", line 3320 pmap_remove_pte: not locked pg
0xffff800003401b18 va 0x7f7fecb00000
cpu0: Begin traceback...
vpanic() at netbsd:vpanic+0x13c
kern_assert() at netbsd:kern_assert+0x4f
pmap_remove_pte() at netbsd:pmap_remove_pte+0x41a
pmap_remove() at netbsd:pmap_remove+0x1ff
uvm_unmap_remove() at netbsd:uvm_unmap_remove+0x283
sys_munmap() at netbsd:sys_munmap+0x8a
syscall() at netbsd:syscall+0x9a
--- syscall (number 73) ---
7f7ff430171a:
cpu0: End traceback...
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff8021adcd cs 8 rflags 3246 cr2 7f7fefc0b7f8
ilevel 0 rsp fffffe8045ed5c90
curlwp 0xfffffe80be01f680 pid 107.1 lowest kstack 0xfffffe8045ed22c0
Stopped in pid 107.1 (Xorg) at netbsd:breakpoint+0x5: leave
db{0}> show page 0xffff800003401b18
PAGE 0xffff800003401b18:
flags=0x4<TABLED>, pqflags=0x4<AOBJ>, wire_count=1, pa=0xb45ba000
uobject=0xfffffe80b4fff508, uanon=0x0, offset=0x0 loan_count=0
[page ownership tracking disabled]
db{0}> show page 0xffff8000038d2548
PAGE 0xffff8000038d2548:
flags=0x8c<TABLED,CLEAN,RDONLY>, pqflags=0x200<PRIVATE2>, wire_count=0,
pa=0xbea14000
uobject=0xfffffe80bea05820, uanon=0x0, offset=0x10c000 loan_count=0
[page ownership tracking disabled]
db{0}> show page 0xffff8000038d2548
PAGE 0xffff8000038d2548:
flags=0x8c<TABLED,CLEAN,RDONLY>, pqflags=0x200<PRIVATE2>, wire_count=0,
pa=0xbea14000
uobject=0xfffffe80bea05820, uanon=0x0, offset=0x10c000 loan_count=0
[page ownership tracking disabled]
db{0}> show object 0xfffffe80b4fff508
OBJECT 0xfffffe80b4fff508: locked=0, pgops=0xffffffff809e1f40, npages=768,
refs=1
db{0}> show object 0xfffffe80bea05820
OBJECT 0xfffffe80bea05820: locked=0, pgops=0xffffffff809e23c0, npages=1194,
refs=65
Home |
Main Index |
Thread Index |
Old Index