vm_page_free: pindex(0), busy(0), PG_BUSY(0), hold(0) panic: vm_page_free: freeing free page

Robert Watson rwatson at FreeBSD.org
Mon Mar 6 17:34:38 UTC 2006


Got the attached panic + trace on a build server today when doing a parallel 
buildworld.

Unread portion of the kernel message buffer:
vm_page_free: pindex(0), busy(0), PG_BUSY(0), hold(0)
panic: vm_page_free: freeing free page
Uptime: 2d20h44m8s
Dumping 1022 MB (2 chunks)
   chunk 0: 1MB (159 pages) ... ok
   chunk 1: 1022MB (261616 pages) 1006 990 974 958 942 926 910 894 878 862 846 
830 814 798 782 766 750 734 718 702 686 670 654 638 622 606 590 574 558 542 
526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 238 
222 206 190 174 158 142 126 110 94 78 62 46 30 14
#0  doadump () at pcpu.h:165
165     pcpu.h: No such file or directory.
         in pcpu.h
(kgdb) bt
#0  doadump () at pcpu.h:165
#1  0xc064a012 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:399
#2  0xc064a2a8 in panic (fmt=0xc08aa63a "vm_page_free: freeing free page")
     at /usr/src/sys/kern/kern_shutdown.c:555
#3  0xc07c7c2b in vm_page_free_toq (m=0xc1b6f330)
     at /usr/src/sys/vm/vm_page.c:1023
#4  0xc07c7295 in vm_page_free (m=0xc1b6f330) at /usr/src/sys/vm/vm_page.c:403
#5  0xc07c4cd1 in vm_object_terminate (object=0xc57de630)
     at /usr/src/sys/vm/vm_object.c:631
#6  0xc07c4bab in vm_object_deallocate (object=0xc57de630)
     at /usr/src/sys/vm/vm_object.c:564
#7  0xc07c174e in vm_map_entry_delete (map=0xc518dce4, entry=0xc5110aa0)
     at /usr/src/sys/vm/vm_map.c:2207
#8  0xc07c191b in vm_map_delete (map=0xc518dce4, start=3328910128,
     end=3217031168) at /usr/src/sys/vm/vm_map.c:2300
#9  0xc07c197c in vm_map_remove (map=0xc518dce4, start=0, end=3217031168)
     at /usr/src/sys/vm/vm_map.c:2319
#10 0xc0631fe3 in exit1 (td=0xc554d900, rv=0) at vm_map.h:211
#11 0xc06319ac in sys_exit (td=0xc554d900, uap=0x0)
     at /usr/src/sys/kern/kern_exit.c:97
#12 0xc0825edb in syscall (frame=
       {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 0, tf_esi = 1, tf_ebp = 
-1077944200, tf_isp = -278880924, tf_ebx = -1077941067, tf_edx = 134626912, 
tf_ecx = 6, tf_eax = 1, tf_trapno = 12, tf_err = 2, tf_eip = 672758583, tf_cs 
= 51, tf_eflags = 658, tf_esp = -1077944324, tf_ss = 59})
     at /usr/src/sys/i386/i386/trap.c:981
#13 0xc0814d5f in Xint0x80_syscall () at 
/usr/src/sys/i386/i386/exception.s:200
#14 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb) up
#1  0xc064a012 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:399
399                     doadump();
(kgdb) up
#2  0xc064a2a8 in panic (fmt=0xc08aa63a "vm_page_free: freeing free page")
     at /usr/src/sys/kern/kern_shutdown.c:555
555             boot(bootopt);
(kgdb) up
#3  0xc07c7c2b in vm_page_free_toq (m=0xc1b6f330)
     at /usr/src/sys/vm/vm_page.c:1023
1023                            panic("vm_page_free: freeing free page");
(kgdb) inspect *m
$1 = {pageq = {tqe_next = 0xc1b4b330, tqe_prev = 0xc0966a60}, listq = {
     tqe_next = 0xc1276878, tqe_prev = 0xc87de668}, left = 0x0,
   right = 0xc210be98, object = 0x0, pindex = 0, phys_addr = 663449600, md = {
     pv_list_count = 0, pv_list = {tqh_first = 0x0, tqh_last = 0xc1b6f35c}},
   queue = 24, flags = 128, pc = 23, wire_count = 0, cow = 0, hold_count = 0,
   act_count = 5 '\005', busy = 0 '\0', valid = 0 '\0', dirty = 0 '\0'}
(kgdb) up
#4  0xc07c7295 in vm_page_free (m=0xc1b6f330) at /usr/src/sys/vm/vm_page.c:403
403             vm_page_free_toq(m);
(kgdb) up
#5  0xc07c4cd1 in vm_object_terminate (object=0xc57de630)
     at /usr/src/sys/vm/vm_object.c:631
631                             vm_page_free(p);
(kgdb) inspect *p
Cannot access memory at address 0x0
(kgdb) inspect *object
$2 = {mtx = {mtx_object = {lo_class = 0xc08f26e4,
       lo_name = 0xc08a966d "vm object",
       lo_type = 0xc08aa45e "standard object", lo_flags = 4390912, lo_list = {
         tqe_next = 0x0, tqe_prev = 0x0}, lo_witness = 0x0},
     mtx_lock = 3310672128, mtx_recurse = 0}, object_list = {
     tqe_next = 0xc63cd18c, tqe_prev = 0xc62d62b8}, shadow_head = {
     lh_first = 0x0}, shadow_list = {le_next = 0x0, le_prev = 0xc82815d8},
   memq = {tqh_first = 0xc1b6f330, tqh_last = 0xc1fb94e8}, root = 0xc210be98,
   size = 8, generation = 13, ref_count = 0, shadow_count = 0, type = 0 '\0',
   flags = 8584, pg_color = 27, paging_in_progress = 0,
   resident_page_count = 6, backing_object = 0x0,
   backing_object_offset = 20480, pager_object_list = {tqe_next = 0x0,
     tqe_prev = 0x0}, handle = 0x0, un_pager = {vnp = {vnp_size = 512}, devp = 
{
       devp_pglist = {tqh_first = 0x200, tqh_last = 0x0}}, swp = {
       swp_bcount = 512}}}
(kgdb) up
#6  0xc07c4bab in vm_object_deallocate (object=0xc57de630)
     at /usr/src/sys/vm/vm_object.c:564
564                             vm_object_terminate(object);
(kgdb) up
#7  0xc07c174e in vm_map_entry_delete (map=0xc518dce4, entry=0xc5110aa0)
     at /usr/src/sys/vm/vm_map.c:2207
2207                    vm_object_deallocate(object);
(kgdb) up
#8  0xc07c191b in vm_map_delete (map=0xc518dce4, start=3328910128,
     end=3217031168) at /usr/src/sys/vm/vm_map.c:2300
2300                    vm_map_entry_delete(map, entry);
(kgdb) inspect *map
$3 = {header = {prev = 0xc66ae2a8, next = 0xc66b2330, left = 0x0, right = 0x0,
     start = 0, end = 3217031168, avail_ssize = 0, adj_free = 0, max_free = 0,
     object = {vm_object = 0x0, sub_map = 0x0}, offset = 0, eflags = 0,
     protection = 0 '\0', max_protection = 0 '\0', inheritance = 0 '\0',
     wired_count = 0, lastr = 0}, lock = {sx_object = {lo_class = 0xc08f3aac,
       lo_name = 0xc08a9dbd "user map", lo_type = 0xc08a9dbd "user map",
       lo_flags = 3866624, lo_list = {tqe_next = 0x0, tqe_prev = 0x0},
       lo_witness = 0x0}, sx_lock = 0xc0952234, sx_cnt = -1, sx_shrd_cv = {
       cv_description = 0xc08a9dbd "user map", cv_waiters = 0},
     sx_shrd_wcnt = 0, sx_excl_cv = {cv_description = 0xc08a9dbd "user map",
       cv_waiters = 0}, sx_excl_wcnt = 0, sx_xholder = 0xc554d900},
   system_mtx = {mtx_object = {lo_class = 0xc08f26e4,
       lo_name = 0xc08a9db2 "system map", lo_type = 0xc08a9db2 "system map",
       lo_flags = 4390912, lo_list = {tqe_next = 0x0, tqe_prev = 0x0},
       lo_witness = 0x0}, mtx_lock = 4, mtx_recurse = 0}, nentries = 12,
   size = 1372160, timestamp = 93, needs_wakeup = 0 '\0', system_map = 0 '\0',
   flags = 0 '\0', root = 0xc66b8330, pmap = 0xc518dda4}
(kgdb) up
#9  0xc07c197c in vm_map_remove (map=0xc518dce4, start=0, end=3217031168)
     at /usr/src/sys/vm/vm_map.c:2319
2319            result = vm_map_delete(map, start, end);
(kgdb) up
#10 0xc0631fe3 in exit1 (td=0xc554d900, rv=0) at vm_map.h:211
211     {
(kgdb) inspect *td
$4 = {td_proc = 0xc554c624, td_ksegrp = 0xc4b104e0, td_plist = {
     tqe_next = 0x0, tqe_prev = 0xc554c634}, td_kglist = {tqe_next = 0x0,
     tqe_prev = 0xc4b104ec}, td_slpq = {tqe_next = 0x0, tqe_prev = 0xc546a880},
   td_lockq = {tqe_next = 0x0, tqe_prev = 0xef634c2c}, td_runq = {
     tqe_next = 0x0, tqe_prev = 0xc554c63c}, td_selq = {tqh_first = 0x0,
     tqh_last = 0xc554d930}, td_sleepqueue = 0xc546a880,
   td_turnstile = 0xc4fda080, td_umtxq = 0xc54b1d80, td_tid = 100115,
   td_flags = 16842754, td_inhibitors = 0, td_pflags = 0, td_dupfd = 0,
   td_wchan = 0x0, td_wmesg = 0x0, td_lastcpu = 0 '\0', td_oncpu = 0 '\0',
   td_owepreempt = 0 '\0', td_locks = 0, td_blocked = 0x0, td_ithd = 0x0,
   td_lockname = 0x0, td_contested = {lh_first = 0x0}, td_sleeplocks = 0x0,
   td_intr_nesting_level = 0, td_pinned = 0, td_mailbox = 0x0,
   td_ucred = 0xc59efe00, td_standin = 0x0, td_upcall = 0x0, td_sticks = 1580,
   td_uuticks = 0, td_usticks = 0, td_intrval = 0, td_oldsigmask = {__bits = {
       0, 0, 0, 0}}, td_sigmask = {__bits = {0, 0, 0, 0}}, td_siglist = {
     __bits = {0, 0, 0, 0}}, td_generation = 4, td_sigstk = {ss_sp = 0x0,
     ss_size = 0, ss_flags = 4}, td_kflags = 0, td_xsig = 0,
   td_profil_addr = 0, td_profil_ticks = 0, td_base_pri = 193 'Á',
   td_priority = 193 'Á', td_pcb = 0xef609d90, td_state = TDS_RUNNING,
   td_retval = {0, 134626912}, td_slpcallout = {c_links = {sle = {
         sle_next = 0x0}, tqe = {tqe_next = 0x0, tqe_prev = 0xd8b05058}},
     c_time = 247449857, c_arg = 0xc554d900,
     c_func = 0xc0668410 <sleepq_timeout>, c_mtx = 0x0, c_flags = 16},
   td_frame = 0xef609d38, td_kstack_obj = 0xc554fe70, td_kstack = 4016078848,
   td_kstack_pages = 2, td_altkstack_obj = 0x0, td_altkstack = 0,
   td_altkstack_pages = 0, td_critnest = 0, td_md = {md_spinlock_count = 0,
     md_saved_flags = 582}, td_sched = 0xc554da54}
(kgdb) inspect *td->td_proc
$5 = {p_list = {le_next = 0xc50c8a3c, le_prev = 0xc0952f84}, p_ksegrps = {
     tqh_first = 0xc4b104e0, tqh_last = 0xc4b104e4}, p_threads = {
     tqh_first = 0xc554d900, tqh_last = 0xc554d908}, p_suspended = {
     tqh_first = 0x0, tqh_last = 0xc554c63c}, p_ucred = 0xc59efe00, p_fd = 0x0,
   p_fdtol = 0x0, p_stats = 0xc5161e00, p_limit = 0xc8e8ad00,
   p_sigacts = 0xc90cb000, p_flag = 24578, p_sflag = 1, p_state = PRS_NORMAL,
   p_pid = 33761, p_hash = {le_next = 0x0, le_prev = 0xc4a8ff84}, p_pglist = {
     le_next = 0x0, le_prev = 0xc50c8a8c}, p_pptr = 0xc50c8a3c, p_sibling = {
     le_next = 0x0, le_prev = 0xc50c8aa0}, p_children = {lh_first = 0x0},
   p_mtx = {mtx_object = {lo_class = 0xc08f26e4,
       lo_name = 0xc0894ece "process lock",
       lo_type = 0xc0894ece "process lock", lo_flags = 4390912, lo_list = {
         tqe_next = 0x0, tqe_prev = 0x0}, lo_witness = 0x0}, mtx_lock = 4,
     mtx_recurse = 0}, p_oppid = 0, p_vmspace = 0xc518dce4, p_swtime = 0,
   p_realtimer = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {
       tv_sec = 0, tv_usec = 0}}, p_rux = {rux_runtime = {sec = 0,
       frac = 79150977401680154}, rux_uticks = 1, rux_sticks = 1547,
     rux_iticks = 0, rux_uu = 0, rux_su = 0, rux_iu = 0}, p_crux = {
     rux_runtime = {sec = 0, frac = 3898975394652827504}, rux_uticks = 17,
     rux_sticks = 13, rux_iticks = 0, rux_uu = 0, rux_su = 0, rux_iu = 0},
   p_profthreads = 0, p_maxthrwaits = 0, p_traceflag = 0, p_tracevp = 0x0,
   p_tracecred = 0x0, p_textvp = 0xc4e29110, p_siglist = {__bits = {0, 0, 0,
       0}}, p_lock = 0 '\0', p_sigiolst = {slh_first = 0x0}, p_sigparent = 20,
   p_sig = 0, p_code = 0, p_stops = 0, p_stype = 0, p_step = 0 '\0',
   p_pfsflags = 0 '\0', p_nlminfo = 0x0, p_aioinfo = 0x0, p_singlethread = 0x0,
   p_suspcount = 0, p_xthread = 0x0, p_boundary_count = 0,
   p_procscopegrp = 0x0, p_magic = 3203398350,
   p_comm = "sh\000e\000\000r", '\0' <repeats 12 times>, p_pgrp = 0xc5346100,
   p_sysent = 0xc0934c20, p_args = 0x0, p_cpulimit = 9223372036854775807,
   p_nice = 4 '\004', p_xstat = 0, p_klist = {kl_list = {slh_first = 0x0},
     kl_lock = 0xc062f934 <knlist_mtx_lock>,
     kl_unlock = 0xc062f968 <knlist_mtx_unlock>,
     kl_locked = 0xc062f9a4 <knlist_mtx_locked>, kl_lockarg = 0xc554c68c},
   p_numthreads = 1, p_numksegrps = 1, p_md = {md_ldt = 0x0}, p_itcallout = {
     c_links = {sle = {sle_next = 0x0}, tqe = {tqe_next = 0x0,
         tqe_prev = 0x0}}, c_time = 0, c_arg = 0x0, c_func = 0, c_mtx = 0x0,
     c_flags = 16}, p_acflag = 0, p_ru = 0xc59e4400, p_peers = 0x0,
   p_leader = 0xc554c624, p_emuldata = 0x0, p_label = 0x0, p_sched = 
0xc554c830}

Robert N M Watson


More information about the freebsd-stable mailing list