Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Jan 2003 22:24:49 -0800
From:      steve@Watt.COM (Steve Watt)
To:        stable@freebsd.org
Subject:   panic: vm_map_fork: encountered a submap
Message-ID:  <200301080624.h086Oono004995@wattres.Watt.COM>

next in thread | raw e-mail | index | archive | help
OK, I guess I'm getting lucky (not) this week.  After my ugly filesystem
panic a couple of days ago (lost six files -- backups?  naah), I got a
vm_map_fork: encountered a submap
panic this evening.  

The current process was sh.  The trace looks like:

(kgdb) where
#0  dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
#1  0xc01f2e18 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:316
#2  0xc01f324c in poweroff_wait (junk=0xc037b3e0, howto=-855254336)
    at /usr/src/sys/kern/kern_shutdown.c:595
#3  0xc02d3edc in vmspace_fork (vm1=0xccec2080) at /usr/src/sys/vm/vm_map.c:2421
#4  0xc02d103b in vm_fork (p1=0xcce3a000, p2=0xcd05dac0, flags=20)
    at /usr/src/sys/vm/vm_glue.c:232
#5  0xc01ec357 in fork1 (p1=0xcce3a000, flags=20, procp=0xcd04bf30)
    at /usr/src/sys/kern/kern_fork.c:488
#6  0xc01ebb0e in fork (p=0xcce3a000, uap=0xcd04bf80)
    at /usr/src/sys/kern/kern_fork.c:100
#7  0xc031204d in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 0, 
      tf_esi = 135041024, tf_ebp = -1077937600, tf_isp = -855326764, tf_ebx = 0, 
      tf_edx = 135030556, tf_ecx = 0, tf_eax = 2, tf_trapno = 12, tf_err = 2, 
      tf_eip = 134674540, tf_cs = 31, tf_eflags = 514, tf_esp = -1077937628, tf_ss = 47})
    at /usr/src/sys/i386/i386/trap.c:1175
#8  0xc0305ff5 in Xint0x80_syscall ()
#9  0x804b91f in ?? ()
#10 0x804acc0 in ?? ()
#11 0x805288c in ?? ()
#12 0x80527f6 in ?? ()
#13 0x804813e in ?? ()
(kgdb) up
#1  0xc01f2e18 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:316
316                     dumpsys();
(kgdb) up
#2  0xc01f324c in poweroff_wait (junk=0xc037b3e0, howto=-855254336)
    at /usr/src/sys/kern/kern_shutdown.c:595
595             boot(bootopt);
(kgdb) up
#3  0xc02d3edc in vmspace_fork (vm1=0xccec2080) at /usr/src/sys/vm/vm_map.c:2421
2421                            panic("vm_map_fork: encountered a submap");
(kgdb) list
2416
2417            old_entry = old_map->header.next;
2418
2419            while (old_entry != &old_map->header) {
2420                    if (old_entry->eflags & MAP_ENTRY_IS_SUB_MAP)
2421                            panic("vm_map_fork: encountered a submap");
2422
2423                    switch (old_entry->inheritance) {
2424                    case VM_INHERIT_NONE:
2425                            break;
(kgdb) print vm1
$4 = (struct vmspace *) 0xc037b3e0
(kgdb) print *vm1
$1 = {vm_map = {header = {prev = 0x6d5f6d76, next = 0x665f7061, start = 980120175, 
      end = 1668179232, avail_ssize = 1953396079, object = {vm_object = 0x64657265, 
        sub_map = 0x64657265}, offset = 7020375650722668832, eflags = 112, 
      protection = 0 '\000', max_protection = 0 '\000', inheritance = 0 '\000', 
      wired_count = 0, lastr = 0}, lock = {lk_interlock = {lock_data = 0}, lk_flags = 0, 
      lk_sharecount = 0, lk_waitcount = 0, lk_exclusivecount = 24898, lk_prio = 8292, 
      lk_wmesg = 0x72746e65 <Address 0x72746e65 out of bounds>, lk_timo = 1953702009, 
      lk_lockholder = 796160609}, nentries = 543452773, size = 544370534, 
    system_map = 110 'n', infork = 101 'e', hint = 0x63617473, timestamp = 1852121195, 
    first_free = 0x797274, pmap = 0x0}, vm_pmap = {pm_pdir = 0x0, pm_pteobj = 0x0, 
    pm_pvlist = {tqh_first = 0x0, tqh_last = 0x0}, pm_count = 0, pm_active = 543449410, 
    pm_stats = {resident_count = 1667331187, wired_count = 1919361131}, 
    pm_ptphint = 0x7320776f}, vm_refcnt = 1953653108, 
  vm_shm = 0x646e652f <Address 0x646e652f out of bounds>, vm_rssize = 544106784, 
  vm_swrss = 544695662, vm_tsize = 1667331187, vm_dsize = 1852121195, 
  vm_ssize = 7959156, vm_taddr = 0x0, vm_daddr = 0x0, vm_maxsaddr = 0x0, 
  vm_minsaddr = 0x0}
(kgdb) print old_entry
$2 = 0xc037b3e0
(kgdb) print *old_entry
$3 = {prev = 0x6d5f6d76, next = 0x665f7061, start = 980120175, end = 1668179232, 
  avail_ssize = 1953396079, object = {vm_object = 0x64657265, sub_map = 0x64657265}, 
  offset = 7020375650722668832, eflags = 112, protection = 0 '\000', 
  max_protection = 0 '\000', inheritance = 0 '\000', wired_count = 0, lastr = 0}
(kgdb) print *(struct proc *)curproc
$6 = {p_procq = {tqe_next = 0xcd05bbe0, tqe_prev = 0xc0400de0}, p_list = {
    le_next = 0xcd05bbe0, le_prev = 0xcd05dac8}, p_cred = 0xc138d3e0, p_fd = 0xc1134b00, 
  p_stats = 0xcd049cd0, p_limit = 0xc1445d00, p_upages_obj = 0xcd0171e0, 
  p_procsig = 0xc1535000, p_flag = 16388, p_stat = 2 '\002', p_pad1 = "\000\000", 
  p_pid = 56896, p_hash = {le_next = 0xcce3c220, le_prev = 0xc0b34d00}, p_pglist = {
    le_next = 0xcd05dac0, le_prev = 0xcd05c0fc}, p_pptr = 0xcd05c0c0, p_sibling = {
    le_next = 0x0, le_prev = 0xcd05c110}, p_children = {lh_first = 0xcd05dac0}, 
  p_ithandle = {callout = 0xc382e4a8}, p_oppid = 0, p_dupfd = 0, p_vmspace = 0xccec2080, 
  p_estcpu = 36, p_cpticks = 0, p_pctcpu = 1093, p_wchan = 0x0, p_wmesg = 0x0, 
  p_swtime = 3, p_slptime = 0, p_realtimer = {it_interval = {tv_sec = 0, tv_usec = 0}, 
    it_value = {tv_sec = 0, tv_usec = 0}}, p_runtime = 0, p_uu = 0, p_su = 0, p_iu = 0, 
  p_uticks = 0, p_sticks = 1410, p_iticks = 2, p_traceflag = 0, p_tracep = 0x0, 
  p_siglist = {__bits = {0, 0, 0, 0}}, p_textvp = 0xcca37740, p_lock = 1 '\001', 
  p_oncpu = 0 '\000', p_lastcpu = 0 '\000', p_rqindex = 12 '\f', p_locks = -269, 
  p_simple_locks = 0, p_stops = 0, p_stype = 0, p_step = 0 '\000', 
  p_pfsflags = 0 '\000', p_pad3 = "\000", p_retval = {0, 135030556}, p_sigiolst = {
    slh_first = 0x0}, p_sigparent = 20, p_oldsigmask = {__bits = {0, 0, 0, 0}}, 
  p_sig = 0, p_code = 0, p_klist = {slh_first = 0x0}, p_sigmask = {__bits = {0, 0, 0, 
      0}}, p_sigstk = {ss_sp = 0x0, ss_size = 0, ss_flags = 4}, p_priority = 54 '6', 
  p_usrpri = 54 '6', p_nice = 0 '\000', 
  p_comm = "sh\000n\000er\000\000\000\000\000\000\000\000\000", p_pgrp = 0xc1374ec0, 
  p_sysent = 0xc03aaa00, p_rtprio = {type = 1, prio = 0}, p_prison = 0x0, 
  p_args = 0xc15d9c80, p_addr = 0xcd049000, p_md = {md_regs = 0xcd04bfa8}, p_xstat = 0, 
  p_acflag = 0, p_ru = 0x0, p_nthreads = 0, p_aioinfo = 0x0, p_wakeup = 0, 
  p_peers = 0x0, p_leader = 0xcce3a000, p_asleep = {as_priority = 0, as_timo = 0}, 
  p_emuldata = 0x0}

For some reason, I seem to be getting questionable data from
some of my debugging sessions (for example the *vm1 above is really
the panic string).

The machine was running a late November (about 21 Nov) -STABLE until the
softdeps panic on 4 Jan, at which point I did a refresh to -STABLE.  Then
this panic tonight...  guess I'm having a bad week.

I'm not seeing any recent changes to vm_map that could be causing
this, but I'm not that deeply into the VM subsystem.  Clues?


-- 
Steve Watt KD6GGD  PP-ASEL-IA          ICBM: 121W 56' 57.8" / 37N 20' 14.9"
 Internet: steve @ Watt.COM                         Whois: SW32
   Free time?  There's no such thing.  It just comes in varying prices...

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301080624.h086Oono004995>