Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 09 May 2000 18:15:35 +0200
From:      "Jose M. Alcaide" <jose@we.lc.ehu.es>
To:        stable@FreeBSD.org
Subject:   trap 12 in in_delayed_cksum() (netinet/ip_output.c)
Message-ID:  <391839A7.C0AC0D71@we.lc.ehu.es>

next in thread | raw e-mail | index | archive | help
After I cvsupped and made the world yesterday, one of my 4.0-STABLE
systems panics with a trap 12 while there is high network activity.
I can reproduce the panic, for example, doing a ping -f to the system
while trying to connect via ssh from another machine. Also, the
network file transfers are slow and frequently get blocked for several
seconds, especially when using scp (and eventually panic the system).

This is what I obtain from a debugging kernel:


root@tiburon[/sys/compile/TIBURON]# gdb -k
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd".
(kgdb) symbol-file kernel.debug
Reading symbols from kernel.debug...done.
(kgdb) kernel-file /var/crash/kernel.1
Undefined command: "kernel-file".  Try "help".
(kgdb) exec-file /var/crash/kernel.1
(kgdb) core-file /var/crash/vmcore.1
IdlePTD 3190784
initial pcb at 294060
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x8
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc0199f95
stack pointer           = 0x10:0xc027450c
frame pointer           = 0x10:0xc0274538
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = Idle
interrupt mask          = 
trap number             = 12
panic: page fault

syncing disks... 

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x30
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc01f825c
stack pointer           = 0x10:0xc0274308
frame pointer           = 0x10:0xc027430c
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = Idle
interrupt mask          = bio 
trap number             = 12
panic: page fault
Uptime: 25m1s

dumping to dev #da/0x20001, offset 196608
dump 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
---
#0  boot (howto=260) at ../../kern/kern_shutdown.c:304
304                     dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0  boot (howto=260) at ../../kern/kern_shutdown.c:304
#1  0xc0153260 in poweroff_wait (junk=0xc026c22f, howto=0)
    at ../../kern/kern_shutdown.c:554
#2  0xc0236602 in trap_fatal (frame=0xc02742c8, eva=48)
    at ../../i386/i386/trap.c:924
#3  0xc02362c1 in trap_pfault (frame=0xc02742c8, usermode=0, eva=48)
    at ../../i386/i386/trap.c:817
#4  0xc0235ea3 in trap (frame={tf_fs = 16, tf_es = 1074397200, tf_ds = 16, 
      tf_edi = 0, tf_esi = -1065060352, tf_ebp = -1071168756, 
      tf_isp = -1071168780, tf_ebx = -1071091972, tf_edx = 1074266176, 
      tf_ecx = -1008666176, tf_eax = 0, tf_trapno = 12, tf_err = 0, 
      tf_eip = -1071676836, tf_cs = 8, tf_eflags = 66050, 
      tf_esp = -1065060352, tf_ss = -1071168724}) at ../../i386/i386/trap.c:423
#5  0xc01f825c in acquire_lock (lk=0xc0286efc)
    at ../../ufs/ffs/ffs_softdep.c:282
#6  0xc01fc074 in softdep_update_inodeblock (ip=0xc0847800, bp=0xc140a3d0, 
    waitfor=0) at ../../ufs/ffs/ffs_softdep.c:3602
#7  0xc01f7506 in ffs_update (vp=0xc3e0f9c0, waitfor=0)
    at ../../ufs/ffs/ffs_inode.c:105
#8  0xc0200949 in ffs_fsync (ap=0xc02743bc) at ../../ufs/ffs/ffs_vnops.c:273
#9  0xc01ff274 in ffs_sync (mp=0xc0812600, waitfor=2, cred=0xc04e1600, 
    p=0xc02a97c0) at vnode_if.h:537
#10 0xc017f24f in sync (p=0xc02a97c0, uap=0x0) at ../../kern/vfs_syscalls.c:549
#11 0xc0152ca7 in boot (howto=256) at ../../kern/kern_shutdown.c:226
#12 0xc0153260 in poweroff_wait (junk=0xc026c22f, howto=0)
    at ../../kern/kern_shutdown.c:554
#13 0xc0236602 in trap_fatal (frame=0xc02744cc, eva=8)
    at ../../i386/i386/trap.c:924
#14 0xc02362c1 in trap_pfault (frame=0xc02744cc, usermode=0, eva=8)
    at ../../i386/i386/trap.c:817
#15 0xc0235ea3 in trap (frame={tf_fs = -1011286000, tf_es = 1073872912, 
      tf_ds = -1071185904, tf_edi = -1068614858, tf_esi = 51578, 
      tf_ebp = -1071168200, tf_isp = -1071168264, tf_ebx = 0, tf_edx = 51578, 
      tf_ecx = 51580, tf_eax = 0, tf_trapno = 12, tf_err = 0, 
      tf_eip = -1072062571, tf_cs = 8, tf_eflags = 66118, 
      tf_esp = -1068614912, tf_ss = 51580}) at ../../i386/i386/trap.c:423
#16 0xc0199f95 in in_delayed_cksum (m=0xc04e3b00)
    at ../../netinet/ip_output.c:979
#17 0xc01999e4 in ip_output (m0=0xc04e3b00, opt=0x0, ro=0xc02745cc, flags=0, 
    imo=0x0) at ../../netinet/ip_output.c:782
#18 0xc0197da6 in icmp_send (m=0xc04e3b00, opts=0x0)
    at ../../netinet/ip_icmp.c:745
#19 0xc0197d27 in icmp_reflect (m=0xc04e3b00) at ../../netinet/ip_icmp.c:707
#20 0xc01979e4 in icmp_input (m=0xc04e3b00, off=20, proto=1)
    at ../../netinet/ip_icmp.c:510
#21 0xc0198622 in ip_input (m=0xc04e3b00) at ../../netinet/ip_input.c:743
#22 0xc0198683 in ipintr () at ../../netinet/ip_input.c:771
(kgdb) up 15
#15 0xc0235ea3 in trap (frame={tf_fs = -1011286000, tf_es = 1073872912, 
      tf_ds = -1071185904, tf_edi = -1068614858, tf_esi = 51578, 
      tf_ebp = -1071168200, tf_isp = -1071168264, tf_ebx = 0, tf_edx = 51578, 
      tf_ecx = 51580, tf_eax = 0, tf_trapno = 12, tf_err = 0, 
      tf_eip = -1072062571, tf_cs = 8, tf_eflags = 66118, 
      tf_esp = -1068614912, tf_ss = 51580}) at ../../i386/i386/trap.c:423
423                             (void) trap_pfault(&frame, FALSE, eva);
(kgdb) frame frame->tf_ebp frame->tf_eip
#0  0xc0199f95 in in_delayed_cksum (m=0xc04e3b00)
    at ../../netinet/ip_output.c:979
979             *(u_short *)(m->m_data + offset) = csum;
(kgdb) print m
$1 = (struct mbuf *) 0x0
(kgdb) 


The problem machine is a PPro 180 with 32 MB RAM and a 3C590 NIC (vx driver).
Another machine, which runs _exactly_ the same version of FreeBSD,
doesn't panic: this is a PIII 500 with 128 MB RAM and a Etherexpress Pro/100
NIC (fxp).

Any ideas?

TIA,
-- JMA
-----------------------------------------------------------------------
José Mª Alcaide                         | mailto:jose@we.lc.ehu.es
Universidad del País Vasco              | mailto:jmas@FreeBSD.org
Dpto. de Electricidad y Electrónica     | http://www.we.lc.ehu.es/~jose
Facultad de Ciencias - Campus de Lejona | Tel.:  +34-946012479
48940 Lejona (Vizcaya) - SPAIN          | Fax:   +34-946013071
-----------------------------------------------------------------------
 "Beware of Programmers who carry screwdrivers"  --  Leonard Brandwein


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?391839A7.C0AC0D71>