NetBSD-Bugs archive

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

port-amd64/51944: sparse core dumps do not work



>Number:         51944
>Category:       port-amd64
>Synopsis:       sparse core dumps do not work
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-amd64-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Feb 04 17:15:00 +0000 2017
>Originator:     Martin Husemann
>Release:        NetBSD 7.99.59
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD night-owl.duskware.de 7.99.59 NetBSD 7.99.59 (NIGHT-OWL) #479: Thu Feb 2 21:44:14 CET 2017 martin%night-owl.duskware.de@localhost:/usr/src/sys/arch/amd64/compile/NIGHT-OWL amd64
Architecture: x86_64
Machine: amd64
>Description:

Kernel crash dumps do not work in -current on amd64:

Manually transcripted from a slightly fuzzy photo:

kernel: protection fault trap, code=0
Stopped in pid 0.5 (system) at netbsd:Xsoftintr+0x40: movl 0(%rax),%esi
[.. ignore upto here, now the interesting part starts ..]

db{0}> sync

dumping to dev 8,1 (offset=4481653, size=1012867):
dump fatal page fault in supervisor mode
trap type 6 code 0 rip fffffff80218d9f cs 8 rflags 10246 cr2 38 ilevel 8 rsp ffffe88bf7a6ab8
curlwp 0xffffe8137b3a8e8 pid 0.5 lowest kstack 0xfffffe80bf7a32c8
kernel: page fault trap, code=0
Stopped in pid 0.5 (system) at netbsd:sparse_dump_mark+0x10b: cmpq $0,38(%rax)

Looking that up in netbsd.gdb:

0xffffffff80218d9f is in sparse_dump_mark (../../../../arch/amd64/amd64/machdep.c:820).
815                      * We assume that seg->start to seg->end are
816                      * uvm_page_physload()ed
817                      */
818                     for (pfn = startpfn; pfn <= endpfn; pfn++) {
819                             pg = PHYS_TO_VM_PAGE(ptoa(pfn));
820                             if (pg->uanon || (pg->pqflags & PQ_FREE) ||
821                                 (pg->uobject && pg->uobject->pgops)) {
822                                     p = VM_PAGE_TO_PHYS(pg) / PAGE_SIZE;
823                                     clrbit(sparse_dump_physmap, p);
824                             }



>How-To-Repeat:
Try to get a crash dump.

>Fix:
n/a



Home | Main Index | Thread Index | Old Index