Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Feb 2001 06:20:01 -0800 (PST)
From:      Stas Kisel <stask@tiger.unisquad.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/24608: FreeBSD 4.2 Panics in Realtek rl driver
Message-ID:  <200102111420.f1BEK1d03832@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/24608; it has been noted by GNATS.

From: Stas Kisel <stask@tiger.unisquad.com>
To: freebsd-gnats-submit@FreeBSD.org
Cc: myleal@spliceip.com.br
Subject: Re: kern/24608: FreeBSD 4.2 Panics in Realtek rl driver
Date: Sun, 11 Feb 2001 16:11:40 +0200

 Hi.
 
 It looks like I've hit the same trouble.
 I've upgraded 4.1-RELEASE router to 4.2-RELEASE yesterday. It was rebooted
 several times while past 24 hours.
 I erroneously decided that it was IPSEC code trouble, and started to
 rebuild kernel without IPSEC.
 When after reboot with new kernel, I've got crash again, I decided to
 write PR or look appropriate (and found kern/24608).
 
 Crashes are located in 4 places:
     at ../../kern/uipc_mbuf2.c:270
     at ../../pci/if_rl.c:1314 (this one originally reported in this PR)
     at ../../kern/uipc_socket.c:558
     at ../../kern/uipc_mbuf.c:621
 
 #6  0xc0161624 in m_aux_add (m=0xc05a7100, af=2, type=50)
     at ../../kern/uipc_mbuf2.c:270
 #7  0xc01bf290 in ipsec_setsocket (m=0xc05a7100, so=0xc6df2a80)
 --
 #6  0xc01fe56c in rl_encap (sc=0xc0d29a00, m_head=0xc05a7800)
     at ../../pci/if_rl.c:1314
 #7  0xc01fe73b in rl_start (ifp=0xc0d29a00) at ../../pci/if_rl.c:1367
 --
 #6  0xc01620a8 in sosend (so=0xc6df1840, addr=0xc0da0ae0, uio=0xc7806ed0, 
     top=0x0, control=0x0, flags=0, p=0xc7326f60)
     at ../../kern/uipc_socket.c:558
 --
 #6  0xc01fe56c in rl_encap (sc=0xc0d29800, m_head=0xc05a7600)
     at ../../pci/if_rl.c:1314
 #7  0xc01fe73b in rl_start (ifp=0xc0d29800) at ../../pci/if_rl.c:1367
 --
 #6  0xc0161624 in m_aux_add (m=0xc05a7400, af=2, type=50)
     at ../../kern/uipc_mbuf2.c:270
 #7  0xc01bf290 in ipsec_setsocket (m=0xc05a7400, so=0xc6df5000)
 --
 #6  0xc01fe56c in rl_encap (sc=0xc0d29a00, m_head=0xc05b1500)
     at ../../pci/if_rl.c:1314
 #7  0xc01fe73b in rl_start (ifp=0xc0d29a00) at ../../pci/if_rl.c:1367
 --
 #6  0xc016004c in m_copym (m=0xc05b1c00, off0=2920, len=872, wait=1)
     at ../../kern/uipc_mbuf.c:621
 #7  0xc01ab330 in tcp_output (tp=0xc6f7a2e0) at ../../netinet/tcp_output.c:590
 --
 #6  0xc016004c in m_copym (m=0xc05a9700, off0=1460, len=872, wait=1)
     at ../../kern/uipc_mbuf.c:621
 #7  0xc01ab330 in tcp_output (tp=0xc6f760c0) at ../../netinet/tcp_output.c:590
 --
 #6  0xc016004c in m_copym (m=0xc05b5c00, off0=7300, len=1156, wait=1)
     at ../../kern/uipc_mbuf.c:621
 #7  0xc01ab330 in tcp_output (tp=0xc6f7c940) at ../../netinet/tcp_output.c:590
 
 
 Here is my dmesg with IPSEC compiled:
 
 Copyright (c) 1992-2000 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
 	The Regents of the University of California. All rights reserved.
 FreeBSD 4.2-RELEASE #0: Sat Feb 10 15:05:08 EET 2001
     stask@btr.unisquad.com:/usr/src/sys/compile/btr
 Timecounter "i8254"  frequency 1193182 Hz
 CPU: Pentium II/Pentium II Xeon/Celeron (501.14-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0x665  Stepping = 5
   Features=0x183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
 real memory  = 67108864 (65536K bytes)
 avail memory = 61898752 (60448K bytes)
 Preloaded elf kernel "kernel" at 0xc033d000.
 Preloaded userconfig_script "/boot/kernel.conf" at 0xc033d09c.
 Pentium Pro MTRR support enabled
 npx0: <math processor> on motherboard
 npx0: INT 16 interface
 pcib0: <Intel 82443BX (440 BX) host to PCI bridge> on motherboard
 pci0: <PCI bus> on pcib0
 pcib1: <Intel 82443BX (440 BX) PCI-PCI (AGP) bridge> at device 1.0 on pci0
 pci1: <PCI bus> on pcib1
 isab0: <Intel 82371AB PCI to ISA bridge> at device 7.0 on pci0
 isa0: <ISA bus> on isab0
 atapci0: <Intel PIIX4 ATA33 controller> port 0xffa0-0xffaf at device 7.1 on pci0
 ata0: at 0x1f0 irq 14 on atapci0
 ata1: at 0x170 irq 15 on atapci0
 pci0: <Intel 82371AB/EB (PIIX4) USB controller> at 7.2 irq 10
 chip1: <Intel 82371AB Power management controller> port 0x440-0x44f at device 7.3 on pci0
 pci0: <ATI Mach64-VT graphics accelerator> at 15.0
 rl0: <RealTek 8139 10/100BaseTX> port 0xe400-0xe4ff mem 0xfebeff00-0xfebeffff irq 9 at device 16.0 on pci0
 rl0: Ethernet address: 00:50:ba:83:7a:09
 miibus0: <MII bus> on rl0
 rlphy0: <RealTek internal media interface> on miibus0
 rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 rl1: <RealTek 8139 10/100BaseTX> port 0xe000-0xe0ff mem 0xfebefe00-0xfebefeff irq 7 at device 17.0 on pci0
 rl1: Ethernet address: 00:50:ba:83:99:c7
 miibus1: <MII bus> on rl1
 rlphy1: <RealTek internal media interface> on miibus1
 rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
 fdc0: FIFO enabled, 8 bytes threshold
 fd0: <1440-KB 3.5" drive> on fdc0 drive 0
 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
 kbd0 at atkbd0
 psm0: <PS/2 Mouse> irq 12 on atkbdc0
 psm0: model Generic PS/2 mouse, device ID 0
 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
 sc0: <System console> at flags 0x100 on isa0
 sc0: VGA <16 virtual consoles, flags=0x300>
 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
 sio0: type 16550A
 sio1 at port 0x2f8-0x2ff irq 3 on isa0
 sio1: type 16550A
 ppc0: parallel port not found.
 IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to accept, logging limited to 100 packets/entry by default
 DUMMYNET initialized (000608)
 IPsec: Initialized Security Association Processing.
 IP Filter: v3.4.8 initialized.  Default = pass all, Logging = enabled
 ad0: 6149MB <WDC WD64AA> [13328/15/63] at ata0-master UDMA33
 Mounting root from ufs:/dev/ad0s1a
 WARNING: / was not properly dismounted
 ipfw: Accounting cleared.
 uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xef80-0xef9f irq 10 at device 7.2 on pci0
 usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
 usb0: USB revision 1.0
 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
 uhub0: 2 ports with 2 removable, self powered
 
 Here is kgdb output on core of kernel without IPSEC. I've resently got
 one more crash, kgdb output is almost the same. I'll post it if needed,
 and I'll post as much of this staff as needed :)
 
 
 Script started on Sun Feb 11 14:56:39 2001
 btr# 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 /sys/compile/btr/kernel.debug
 Reading symbols from /sys/compile/btr/kernel.debug...done.
 (kgdb) exec-file /var/crash/kernel.42
 (kgdb) core-file /var/crash/vmcore.42
 IdlePTD 3305472
 initial pcb at 2a60e0
 panicstr: page fault
 panic messages:
 ---
 Fatal trap 12: page fault while in kernel mode
 fault virtual address	= 0x5ac0ac00
 fault code		= supervisor read, page not present
 instruction pointer	= 0x8:0xc01e8b20
 stack pointer	        = 0x10:0xc02850a4
 frame pointer	        = 0x10:0xc02850b0
 code segment		= base 0x0, limit 0xfffff, type 0x1b
 			= DPL 0, pres 1, def32 1, gran 1
 processor eflags	= interrupt enabled, resume, IOPL = 3
 current process		= Idle
 interrupt mask		= net tty 
 trap number		= 12
 panic: page fault
 
 syncing disks... 5 3 
 done
 Uptime: 33m9s
 
 dumping to dev #ad/0x20001, offset 380928
 dump ata0: resetting devices .. done
 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 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  dumpsys () at ../../kern/kern_shutdown.c:469
 469		if (dumping++) {
 (kgdb) bt
 #0  dumpsys () at ../../kern/kern_shutdown.c:469
 #1  0xc013e397 in boot (howto=256) at ../../kern/kern_shutdown.c:309
 #2  0xc013e72d in panic (fmt=0xc027a0af "page fault")
     at ../../kern/kern_shutdown.c:556
 #3  0xc02451b2 in trap_fatal (frame=0xc0285064, eva=1522576384)
     at ../../i386/i386/trap.c:951
 #4  0xc0244e65 in trap_pfault (frame=0xc0285064, usermode=0, eva=1522576384)
     at ../../i386/i386/trap.c:844
 #5  0xc0244a07 in trap (frame={tf_fs = 16, tf_es = -1071120368, 
       tf_ds = -1820065776, tf_edi = 1, tf_esi = 6754970, tf_ebp = -1071099728, 
       tf_isp = -1071099760, tf_ebx = 1, tf_edx = 1522576384, tf_ecx = 0, 
       tf_eax = 6754970, tf_trapno = 12, tf_err = 0, tf_eip = -1071740128, 
       tf_cs = 8, tf_eflags = 78342, tf_esp = -1067788544, tf_ss = -1067788544})
     at ../../i386/i386/trap.c:443
 #6  0xc01e8b20 in rl_encap (sc=0xc0d29800, m_head=0xc05ad700)
     at ../../pci/if_rl.c:1314
 #7  0xc01e8cef in rl_start (ifp=0xc0d29800) at ../../pci/if_rl.c:1367
 #8  0xc0181aac in ether_output_frame (ifp=0xc0d29800, m=0xc05ad700)
     at ../../net/if_ethersubr.c:401
 #9  0xc0181a1a in ether_output (ifp=0xc0d29800, m=0xc05ad700, dst=0xc0d9c130, 
     rt0=0xc0ec8400) at ../../net/if_ethersubr.c:354
 #10 0xc019f697 in ip_output (m0=0xc05ad700, opt=0x0, ro=0xc6fb9d08, flags=0, 
     imo=0x0) at ../../netinet/ip_output.c:787
 #11 0xc01a43da in tcp_output (tp=0xc6fb9d80) at ../../netinet/tcp_output.c:859
 ---Type <return> to continue, or q <return> to quit---
 #12 0xc01a31ad in tcp_input (m=0xc05aa700, off0=20, proto=6)
     at ../../netinet/tcp_input.c:2220
 #13 0xc019df03 in ip_input (m=0xc05aa700) at ../../netinet/ip_input.c:731
 #14 0xc019df77 in ipintr () at ../../netinet/ip_input.c:759
 (kgdb) up 6
 #6  0xc01e8b20 in rl_encap (sc=0xc0d29800, m_head=0xc05ad700)
     at ../../pci/if_rl.c:1314
 1314			return(1);
 (kgdb) l
 1309		 */
 1310	
 1311		MGETHDR(m_new, M_DONTWAIT, MT_DATA);
 1312		if (m_new == NULL) {
 1313			printf("rl%d: no memory for tx list", sc->rl_unit);
 1314			return(1);
 1315		}
 1316		if (m_head->m_pkthdr.len > MHLEN) {
 1317			MCLGET(m_new, M_DONTWAIT);
 1318			if (!(m_new->m_flags & M_EXT)) {
 (kgdb) p *sc
 $1 = {arpcom = {ac_if = {if_softc = 0xc0d29800, if_name = 0xc0265d76 "rl", 
       if_link = {tqe_next = 0xc02a6ae0, tqe_prev = 0xc0d29a08}, if_addrhead = {
         tqh_first = 0xc0d32f00, tqh_last = 0xc0d7d690}, if_pcount = 0, 
       if_bpf = 0xc0595760, if_index = 2, if_unit = 1, if_timer = 0, 
       if_flags = -30717, if_ipending = 0, if_linkmib = 0x0, if_linkmiblen = 0, 
       if_data = {ifi_type = 6 '\006', ifi_physical = 0 '\000', 
         ifi_addrlen = 6 '\006', ifi_hdrlen = 14 '\016', 
         ifi_recvquota = 0 '\000', ifi_xmitquota = 0 '\000', ifi_mtu = 1500, 
         ifi_metric = 0, ifi_baudrate = 10000000, ifi_ipackets = 9556, 
         ifi_ierrors = 0, ifi_opackets = 9758, ifi_oerrors = 0, 
         ifi_collisions = 0, ifi_ibytes = 1958413, ifi_obytes = 975722, 
         ifi_imcasts = 3, ifi_omcasts = 0, ifi_iqdrops = 0, ifi_noproto = 0, 
         ifi_hwassist = 0, ifi_unused = 0, ifi_lastchange = {tv_sec = 0, 
           tv_usec = 0}}, if_multiaddrs = {lh_first = 0xc0595000}, 
       if_amcount = 0, if_output = 0xc0181708 <ether_output>, 
       if_start = 0xc01e8ccc <rl_start>, if_done = 0, 
       if_ioctl = 0xc01e9164 <rl_ioctl>, 
       if_watchdog = 0xc01e9250 <rl_watchdog>, if_poll_recv = 0, 
       if_poll_xmit = 0, if_poll_intren = 0, if_poll_slowinput = 0, 
       if_init = 0xc01e8e8c <rl_init>, 
       if_resolvemulti = 0xc0181ddc <ether_resolvemulti>, if_snd = {
         ifq_head = 0x0, ifq_tail = 0x0, ifq_len = 0, ifq_maxlen = 50, 
         ifq_drops = 0}, if_poll_slowq = 0x0, if_prefixhead = {tqh_first = 0x0, 
         tqh_last = 0xc0d298d0}}, ac_enaddr = "\000Pº\203\231Ç", 
 ---Type <return> to continue, or q <return> to quit--- 
     ac_multicnt = 0, ac_netgraph = 0x0}, rl_bhandle = 57344, rl_btag = 0, 
   rl_res = 0xc0d2d780, rl_irq = 0xc0d2d700, rl_intrhand = 0xc0595860, 
   rl_miibus = 0xc0d30400, rl_unit = 1 '\001', rl_type = 2 '\002', 
   rl_stats_no_timeout = 0 '\000', rl_txthresh = 96, rl_cdata = {cur_rx = 0, 
     rl_rx_buf = 0xc6417008 "ataID = A33D1B4B5493F0AEF66DE545547781EF, maxResults = 4, TTL = 1, serverIP=213.73.176.103\n\216\022\f8", 
     rl_rx_buf_ptr = 0xc6417000 "\017·", rl_tx_chain = {0x0, 0x0, 0x0, 0x0}, 
     last_tx = 2 '\002', cur_tx = 2 '\002'}, rl_stat_ch = {
     callout = 0xc2154588}}
 (kgdb) p sc->rl_unit
 $2 = 1 '\001'
 (kgdb) p m_new
 $3 = (struct mbuf *) 0x1
 (kgdb) p *m_new
 cannot read proc at 0
 (kgdb)
 
 Script done on Sun Feb 11 15:38:55 2001
 
 
 Thank you for your attention.
 
 \bye
 Stas
 
 


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




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