Re: PANIC: trap.c

From: Robert Watson <rwatson_at_freebsd.org>
Date: Sun, 15 Feb 2004 21:54:38 -0500 (EST)
On Mon, 16 Feb 2004, Jiri Mikulas wrote:

> Hello, just only for info I got this panic on:  FreeBSD 5.2-CURRENT #1:
> Mon Feb 16 00:53:39 CET 2004
> 
> I built few kernels from saturday morning to sunday evening and with all
> of them i got this panic ..  (my last functional kernel is from FreeBSD
> 5.2-CURRENT #0: Mon Feb 9 19:53:47 CET 2004)  Jiri

It looks like 'ifp' in ip_output.c is NULL here (the offset of if_hwassist
is 0x98).  Are you running with DUMMYNET?  I'm wondering if the recent
commit to clean up MT_TAG pseudo-mbufs has a loose end somewhere.  Try
backing ouf the following commit locally:

mlaier      2004/02/13 11:14:16 PST

  FreeBSD src repository

  Modified files:
    sys/net              bridge.c if_ethersubr.c 
    sys/netinet          in_proto.c ip_divert.c ip_dummynet.c 
                         ip_dummynet.h ip_fastfwd.c ip_fw.h 
                         ip_fw2.c ip_input.c ip_output.c ip_var.h 
                         tcp_debug.c tcp_input.c 
    sys/sys              mbuf.h 
  Added files:
    sys/netinet          ip_divert.h 
  Log:
  This set of changes eliminates the use of MT_TAG "pseudo mbufs",
replacing
  them mostly with packet tags (one case is handled by using an mbuf flag
  since the linkage between "caller" and "callee" is direct and there's no
  need to incur the overhead of a packet tag).
  
  This is (mostly) work from: sam
  
  Silence from: -arch
  Approved by: bms(mentor), sam, rwatson
  
  Revision  Changes    Path
  1.74      +5 -9      src/sys/net/bridge.c
  1.156     +2 -15     src/sys/net/if_ethersubr.c
  1.68      +1 -0      src/sys/netinet/in_proto.c
  1.82      +48 -21    src/sys/netinet/ip_divert.c
  1.1       +83 -0     src/sys/netinet/ip_divert.h (new)
  1.77      +125 -91   src/sys/netinet/ip_dummynet.c
  1.28      +17 -20    src/sys/netinet/ip_dummynet.h
  1.6       +18 -67    src/sys/netinet/ip_fastfwd.c
  1.81      +0 -1      src/sys/netinet/ip_fw.h
  1.54      +25 -5     src/sys/netinet/ip_fw2.c
  1.261     +56 -118   src/sys/netinet/ip_input.c
  1.207     +60 -53    src/sys/netinet/ip_output.c
  1.82      +16 -9     src/sys/netinet/ip_var.h
  1.22      +1 -0      src/sys/netinet/tcp_debug.c
  1.225     +2 -6      src/sys/netinet/tcp_input.c
  1.136     +1 -18     src/sys/sys/mbuf.h

Also, it would be quite interesting to see the contents of 'inspect *m'
and 'inspect *ro' in stack frame #6.

Thanks,

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert_at_fledge.watson.org      Senior Research Scientist, McAfee Research


> 
> 
> ~~~cut~~~
> panic: page fault
> panic messages:
> ---
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x98
> fault code              = supervisor read, page not present
> instruction pointer     = 0x8:0xc05726c8
> stack pointer           = 0x10:0xcd931b6c
> frame pointer           = 0x10:0xcd931c08
> 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         = 27 (swi1: net)
> trap number             = 12
> panic: page fault
> at line 819 in file /usr/src/sys/i386/i386/trap.c
> 
> syncing disks, buffers remaining... 2228 2228 2228 2228 2228 2228 2228 
> 2228 2228 2228 2228 2228 2228 2228 2228 ad0: WARNING - WRITE_DMA 
> interrupt was seen but timeout fired LBA=16089983
> 2228 2228 2228 2228 2228
> giving up on 1832 buffers
> Uptime: 48m58s
> Dumping 255 MB
>  16 32 48 64 80 96 112 128 144 160 176 192 208 224 240
> ---
> Reading symbols from /boot/kernel/acpi.ko...done.
> Loaded symbols for /boot/kernel/acpi.ko
> Reading symbols from 
> /usr/obj/usr/src/sys/ROUTER-IPFW-DEBUG/modules/usr/src/sys/modules/linprocfs/linprocfs.ko.debug...done.
> Loaded symbols for 
> /usr/obj/usr/src/sys/ROUTER-IPFW-DEBUG/modules/usr/src/sys/modules/linprocfs/linprocfs.ko.debug
> Reading symbols from 
> /usr/obj/usr/src/sys/ROUTER-IPFW-DEBUG/modules/usr/src/sys/modules/linux/linux.ko.debug...done.
> Loaded symbols for 
> /usr/obj/usr/src/sys/ROUTER-IPFW-DEBUG/modules/usr/src/sys/modules/linux/linux.ko.debug
> #0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
> 240             dumping++;
> (kgdb) bt
> #0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
> #1  0xc04ef695 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:374
> #2  0xc04ef963 in __panic () at /usr/src/sys/kern/kern_shutdown.c:552
> #3  0xc063ba6c in trap_fatal (frame=0xcd931b2c, eva=152) at 
> /usr/src/sys/i386/i386/trap.c:819
> #4  0xc063b7a3 in trap_pfault (frame=0xcd931b2c, usermode=0, eva=152) at 
> /usr/src/sys/i386/i386/trap.c:733
> #5  0xc063b405 in trap (frame=
>       {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = -1028936856, tf_esi 
> = -1055952304, tf_ebp = -845997048, tf_isp = -845997224, tf_ebx = 0, 
> tf_edx = -1055952384, tf_ecx = 0, tf_eax = -1055952384, tf_trapno = 12, 
> tf_err = 0, tf_eip = -1068030264, tf_cs = 8, tf_eflags = 66050, tf_esp = 
> -1066754656, tf_ss = 64})
>     at /usr/src/sys/i386/i386/trap.c:420
> #6  0xc05726c8 in ip_output (m=0xc10f7200, opt=0x0, ro=0xc2abab68, 
> flags=1, imo=0x0, inp=0x0) at /usr/src/sys/netinet/ip_output.c:983
> #7  0xc05719ce in ip_forward (m=0xc10f7200, srcrt=0, next_hop=0x0) at 
> /usr/src/sys/netinet/ip_input.c:1868
> #8  0xc05705f1 in ip_input (m=0xc10f7200) at 
> /usr/src/sys/netinet/ip_input.c:698
> #9  0xc05536ea in netisr_processqueue (ni=0xc06f7c18) at 
> /usr/src/sys/net/netisr.c:152
> #10 0xc0553a5d in swi_net (dummy=0x0) at /usr/src/sys/net/netisr.c:257
> #11 0xc04dfd08 in ithread_loop (arg=0xc10dd580) at 
> /usr/src/sys/kern/kern_intr.c:547
> #12 0xc04df0e0 in fork_exit (callout=0xc04dfbd4 <ithread_loop>, 
> arg=0xc10dd580, frame=0xcd931d48) at /usr/src/sys/kern/kern_fork.c:802
> (kgdb) up 3
> #3  0xc063ba6c in trap_fatal (frame=0xcd931b2c, eva=152) at 
> /usr/src/sys/i386/i386/trap.c:819
> 819                     panic("%s", trap_msg[type]);
> (kgdb) up 1
> #4  0xc063b7a3 in trap_pfault (frame=0xcd931b2c, usermode=0, eva=152) at 
> /usr/src/sys/i386/i386/trap.c:733
> 733                     trap_fatal(frame, eva);
> #5  0xc063b405 in trap (frame=
>       {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = -1028936856, tf_esi 
> = -1055952304, tf_ebp = -845997048, tf_isp = -845997224, tf_ebx = 0, 
> tf_edx = -1055952384, tf_ecx = 0, tf_eax = -1055952384, tf_trapno = 12, 
> tf_err = 0, tf_eip = -1068030264, tf_cs = 8, tf_eflags = 66050, tf_esp = 
> -1066754656, tf_ss = 64})
>     at /usr/src/sys/i386/i386/trap.c:420
> 420                             (void) trap_pfault(&frame, FALSE, eva);
> 
> ~~~cut~~~
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 
Received on Sun Feb 15 2004 - 17:55:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:43 UTC