Subject: i386 pmap uvm object dangling pages KASSERT panic
To: None <current-users@netbsd.org>
From: Antti Kantee <pooka@cs.hut.fi>
List: current-users
Date: 04/24/2007 01:05:26
I just had one of these with a ~month old kernel:

#9  0xc03e3e01 in pmap_destroy (pmap=0xcc6ea04c)
    at /usr/allsrc/src/sys/arch/i386/i386/pmap.c:1656
1656            KASSERT(pmap->pm_obj.uo_npages == 0);

#9  0xc03e3e01 in pmap_destroy (pmap=0xcc6ea04c)
    at /usr/allsrc/src/sys/arch/i386/i386/pmap.c:1656
#10 0xc03e3f5c in pmap_load ()
    at /usr/allsrc/src/sys/arch/i386/i386/pmap.c:1942
#11 0xc010c5de in calltrap ()
#12 0x00000017 in ?? ()

I had just finished updating the kernel sources and typed "make"
(in the wrong directory, though ;).

Any idea if this is fixed and what should I look for in the dump?

(gdb) print *pmap
$1 = {pm_obj = {vmobjlock = {lock_data = 0 '\0', lock_pad = "Ÿ­Þ"}, 
    pgops = 0x0, memq = {tqh_first = 0xc23bc4c0, tqh_last = 0xc23bc4d0}, 
    uo_npages = 1, uo_refs = 0}, pm_list = {le_next = 0xcc6eab48, 
    le_prev = 0xcc6ea4d8}, pm_pdir = 0xd193c000, pm_pdirpa = 1198936064, 
  pm_ptphint = 0xc23bc4c0, pm_stats = {resident_count = 4, wired_count = 0}, 
  pm_hiexec = 0, pm_flags = 0, pm_ldt = 0x0, pm_ldt_len = 0, pm_ldt_sel = 40, 
  pm_cpus = 0}

-- 
Antti Kantee <pooka@iki.fi>                     Of course he runs NetBSD
http://www.iki.fi/pooka/                          http://www.NetBSD.org/
    "la qualité la plus indispensable du cuisinier est l'exactitude"