Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 May 2001 23:01:42 +0300
From:      Andrey Lakhno <land@dnepr.net>
To:        stable@freebsd.org
Subject:   rl driver - spontaneous kernel panics
Message-ID:  <20010525230141.A2752@dnepr.net>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Hi !

I have box running 4.2-STABLE (last cvsuped 15 February 2001).
It has four Realtek 8139 PCI cards. Before last night system runs ok.
But now it random panics. Nothing was chaged within last two weeks.

Kernel config and kernel debug whith gdb attached to this letter.
If you have any ideas how to fix the problem - tell me.

I suppose that one of cards became broken. But which of them ?

-- 
LAND-RIPE

[-- Attachment #2 --]
makeoptions    DEBUG=-g

machine		i386
cpu		I386_CPU
cpu		I486_CPU
cpu		I586_CPU
cpu		I686_CPU
ident		XXX
maxusers	256

options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
#options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	_KPOSIX_PRIORITY_SCHEDULING
options		ICMP_BANDLIM		#Rate limit bad replies
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev

device		isa
device		eisa
device		pci

# Floppy drives
#device		fdc0	at isa? port IO_FD1 irq 6 drq 2
#device		fd0	at fdc0 drive 0

# ATA and ATAPI devices
device		ata0	at isa? port IO_WD1 irq 14
device		ata1	at isa? port IO_WD2 irq 15
device		ata
device		atadisk			# ATA disk drives
#device		atapicd			# ATAPI CDROM drives
options 	ATA_STATIC_ID		#Static device numbering
options 	ATA_ENABLE_ATAPI_DMA	#Enable DMA on ATAPI devices

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
#device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
# pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? flags 0x100

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
# device		apm0    at nexus? disable flags 0x20 # Advanced Power Management

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3

# Parallel port
#device		ppc0	at isa? irq 7
#device		ppbus		# Parallel port bus (required)
#device		ppi		# Parallel port interface device


# PCI Ethernet NICs.
device		miibus
device		rl

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
#pseudo-device	sl	1	# Kernel SLIP
pseudo-device	ppp	2	# Kernel PPP
pseudo-device	tun	4	# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
#pseudo-device	md		# Memory "disks"
#pseudo-device	gif	4	# IPv6 and IPv4 tunneling
#pseudo-device	faith	1	# IPv6-to-IPv4 relaying (translation)

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

#pseudo-device	vlan 2

options		IPFIREWALL
options		IPFIREWALL_VERBOSE
options		IPFIREWALL_DEFAULT_TO_ACCEPT
options		IPFIREWALL_FORWARD
options		TCP_DROP_SYNFIN
options		DUMMYNET
options		HZ=1000
options		SC_HISTORY_SIZE=1000

[-- Attachment #3 --]
Script started on Fri May 25 22:41:18 2001
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) exec-file /var/crash/kernel.0

(kgdb) core-file /var/crash/vmcore.0

IdlePTD 2695168

initial pcb at 21d0c0

panicstr: page fault

panic messages:

---

Fatal trap 12: page fault while in kernel mode

fault virtual address	= 0x92c07500

fault code		= supervisor read, page not present

instruction pointer	= 0x8:0xc0187f18

stack pointer	        = 0x10:0xcdd20c88

frame pointer	        = 0x10:0xcdd20c94

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		= 438 (squid)

interrupt mask		= net tty 

trap number		= 12

panic: page fault



syncing disks... 



Fatal trap 12: page fault while in kernel mode

fault virtual address	= 0x92c07500

fault code		= supervisor read, page not present

instruction pointer	= 0x8:0xc014b388

stack pointer	        = 0x10:0xcdd209a4

frame pointer	        = 0x10:0xcdd209c4

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		= 438 (squid)

interrupt mask		= net tty 

trap number		= 12

panic: page fault

Uptime: 3h44m20s



dumping to dev #ad/0x20001, offset 658065

dump ata0: resetting devices .. done

190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 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 

---

#0  dumpsys () at ../../kern/kern_shutdown.c:469

469		if (dumping++) {

(kgdb) where

#0  dumpsys () at ../../kern/kern_shutdown.c:469

#1  0xc012faab in boot (howto=260) at ../../kern/kern_shutdown.c:309

#2  0xc012fe28 in poweroff_wait (junk=0xc01fbe8f, howto=-857143840)

    at ../../kern/kern_shutdown.c:556

#3  0xc01d6269 in trap_fatal (frame=0xcdd20964, eva=2462086400)

    at ../../i386/i386/trap.c:951

#4  0xc01d5f41 in trap_pfault (frame=0xcdd20964, usermode=0, eva=2462086400)

    at ../../i386/i386/trap.c:844

#5  0xc01d5afb in trap (frame={tf_fs = -985071600, tf_es = -1049886704, 

      tf_ds = -985071600, tf_edi = 6750936, tf_esi = 1, tf_ebp = -841872956, 

      tf_isp = -841873008, tf_ebx = 1, tf_edx = -1832880896, 

      tf_ecx = -885497636, tf_eax = 6750936, tf_trapno = 12, tf_err = 0, 

      tf_eip = -1072385144, tf_cs = 8, tf_eflags = 66182, tf_esp = 60, 

      tf_ss = -1050170880}) at ../../i386/i386/trap.c:443

#6  0xc014b388 in m_devget (buf=0xcb3860da "@", totlen=62, off0=0, 

    ifp=0xc167aa00, copy=0) at ../../kern/uipc_mbuf.c:1087

#7  0xc0187b95 in rl_rxeof (sc=0xc167aa00) at ../../pci/if_rl.c:1138

#8  0xc0187e2a in rl_intr (arg=0xc167aa00) at ../../pci/if_rl.c:1271

#9  0xc01cbbfa in vec7 ()

#10 0xc01964d5 in drain_output (vp=0xcce8ab40, islocked=1)

    at ../../ufs/ffs/ffs_softdep.c:4747

#11 0xc01952f6 in softdep_fsync_mountdev (vp=0xcce8ab40)

    at ../../ufs/ffs/ffs_softdep.c:3906

#12 0xc01992ee in ffs_fsync (ap=0xcdd20b30) at ../../ufs/ffs/ffs_vnops.c:134

---Type <return> to continue, or q <return> to quit---

#13 0xc0197ff6 in ffs_sync (mp=0xc16c8200, waitfor=2, cred=0xc08f6680, 

    p=0xc022f740) at vnode_if.h:537

#14 0xc015d82f in sync (p=0xc022f740, uap=0x0) at ../../kern/vfs_syscalls.c:545

#15 0xc012f87e in boot (howto=256) at ../../kern/kern_shutdown.c:233

#16 0xc012fe28 in poweroff_wait (junk=0xc01fbe8f, howto=-857143840)

    at ../../kern/kern_shutdown.c:556

#17 0xc01d6269 in trap_fatal (frame=0xcdd20c48, eva=2462086400)

    at ../../i386/i386/trap.c:951

#18 0xc01d5f41 in trap_pfault (frame=0xcdd20c48, usermode=0, eva=2462086400)

    at ../../i386/i386/trap.c:844

#19 0xc01d5afb in trap (frame={tf_fs = -1064042480, tf_es = 16, 

      tf_ds = -1063780336, tf_edi = 1, tf_esi = 6750936, tf_ebp = -841872236, 

      tf_isp = -841872268, tf_ebx = 1, tf_edx = -1832880896, tf_ecx = 0, 

      tf_eax = 6750936, tf_trapno = 12, tf_err = 0, tf_eip = -1072136424, 

      tf_cs = 8, tf_eflags = 66182, tf_esp = -1063747840, tf_ss = -1063747840})

    at ../../i386/i386/trap.c:443

#20 0xc0187f18 in rl_encap (sc=0xc167aa00, m_head=0xc0987f00)

    at ../../pci/if_rl.c:1314

#21 0xc01880e7 in rl_start (ifp=0xc167aa00) at ../../pci/if_rl.c:1367

#22 0xc0169ca4 in ether_output_frame (ifp=0xc167aa00, m=0xc0987f00)

    at ../../net/if_ethersubr.c:400

#23 0xc0169c12 in ether_output (ifp=0xc167aa00, m=0xc0987f00, dst=0xc185e0b0, 

    rt0=0xc19ae100) at ../../net/if_ethersubr.c:354

#24 0xc017e8eb in ip_output (m0=0xc0987f00, opt=0x0, ro=0xcc8ca268, flags=0, 

---Type <return> to continue, or q <return> to quit---

    imo=0x0) at ../../netinet/ip_output.c:790

#25 0xc01836ce in tcp_output (tp=0xcc8ca2e0) at ../../netinet/tcp_output.c:859

#26 0xc0184f84 in tcp_usr_send (so=0xcc5c3180, flags=4, m=0xc0928500, nam=0x0, 

    control=0x0, p=0xcce905e0) at ../../netinet/tcp_usrreq.c:557

#27 0xc014c923 in sosend (so=0xcc5c3180, addr=0x0, uio=0xcdd20ed8, 

    top=0xc0928500, control=0x0, flags=0, p=0xcce905e0)

    at ../../kern/uipc_socket.c:620

#28 0xc0141008 in soo_write (fp=0xc1914700, uio=0xcdd20ed8, cred=0xc1809380, 

    flags=0, p=0xcce905e0) at ../../kern/sys_socket.c:79

#29 0xc013dc49 in dofilewrite (p=0xcce905e0, fp=0xc1914700, fd=31, 

    buf=0xa6e3000, nbyte=3004, offset=-1, flags=0) at ../../sys/file.h:159

#30 0xc013db02 in write (p=0xcce905e0, uap=0xcdd20f80)

    at ../../kern/sys_generic.c:328

#31 0xc01d6515 in syscall2 (frame={tf_fs = -1078001617, tf_es = -1078001617, 

      tf_ds = -1078001617, tf_edi = -1077936692, tf_esi = -1077936704, 

      tf_ebp = -1077970052, tf_isp = -841871404, tf_ebx = 134628656, 

      tf_edx = 0, tf_ecx = 3004, tf_eax = 4, tf_trapno = 0, tf_err = 2, 

      tf_eip = 672778512, tf_cs = 31, tf_eflags = 518, tf_esp = -1077970112, 

      tf_ss = 47}) at ../../i386/i386/trap.c:1150

#32 0xc01ca705 in Xint0x80_syscall ()

#33 0x80657e0 in ?? ()

#34 0x808811a in ?? ()

#35 0x804a329 in ?? ()

(kgdb) up 19

#19 0xc01d5afb in trap (frame={tf_fs = -1064042480, tf_es = 16, 

      tf_ds = -1063780336, tf_edi = 1, tf_esi = 6750936, tf_ebp = -841872236, 

      tf_isp = -841872268, tf_ebx = 1, tf_edx = -1832880896, tf_ecx = 0, 

      tf_eax = 6750936, tf_trapno = 12, tf_err = 0, tf_eip = -1072136424, 

      tf_cs = 8, tf_eflags = 66182, tf_esp = -1063747840, tf_ss = -1063747840})

    at ../../i386/i386/trap.c:443

443				(void) trap_pfault(&frame, FALSE, eva);

(kgdb) list

438	kernel_trap:

439			/* kernel trap */

440	

441			switch (type) {

442			case T_PAGEFLT:			/* page fault */

443				(void) trap_pfault(&frame, FALSE, eva);

444				return;

445	

446			case T_DNA:

447	#if NNPX > 0

(kgdb) up

#20 0xc0187f18 in rl_encap (sc=0xc167aa00, m_head=0xc0987f00)

    at ../../pci/if_rl.c:1314

1314			return(1);

(kgdb) list

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) up

#21 0xc01880e7 in rl_start (ifp=0xc167aa00) at ../../pci/if_rl.c:1367

1367			if (rl_encap(sc, m_head)) {

(kgdb) list

1362		while(RL_CUR_TXMBUF(sc) == NULL) {

1363			IF_DEQUEUE(&ifp->if_snd, m_head);

1364			if (m_head == NULL)

1365				break;

1366	

1367			if (rl_encap(sc, m_head)) {

1368				IF_PREPEND(&ifp->if_snd, m_head);

1369				ifp->if_flags |= IFF_OACTIVE;

1370				break;

1371			}

(kgdb) up l  

#22 0xc0169ca4 in ether_output_frame (ifp=0xc167aa00, m=0xc0987f00)

    at ../../net/if_ethersubr.c:400

400			(*ifp->if_start)(ifp);

(kgdb) list

395		ifp->if_obytes += m->m_pkthdr.len;

396		if (m->m_flags & M_MCAST)

397			ifp->if_omcasts++;

398		IF_ENQUEUE(&ifp->if_snd, m);

399		if ((ifp->if_flags & IFF_OACTIVE) == 0)

400			(*ifp->if_start)(ifp);

401		splx(s);

402		return (error);

403	}

404	

(kgdb) up

#23 0xc0169c12 in ether_output (ifp=0xc167aa00, m=0xc0987f00, dst=0xc185e0b0, 

    rt0=0xc19ae100) at ../../net/if_ethersubr.c:354

354		return ether_output_frame(ifp, m);

(kgdb) list

349			if (m == NULL)

350				return (0);

351		}

352	

353		/* Continue with link-layer output */

354		return ether_output_frame(ifp, m);

355	}

356	

357	/*

358	 * Ethernet link layer output routine to send a raw frame to the device.

(kgdb) up

#24 0xc017e8eb in ip_output (m0=0xc0987f00, opt=0x0, ro=0xcc8ca268, flags=0, 

    imo=0x0) at ../../netinet/ip_output.c:790

790			error = (*ifp->if_output)(ifp, m,

(kgdb) list

785					ip->ip_sum = in_cksum_hdr(ip);

786				} else {

787					ip->ip_sum = in_cksum(m, hlen);

788				}

789			}

790			error = (*ifp->if_output)(ifp, m,

791					(struct sockaddr *)dst, ro->ro_rt);

792			goto done;

793		}

794		/*

(kgdb) up

#25 0xc01836ce in tcp_output (tp=0xcc8ca2e0) at ../../netinet/tcp_output.c:859

859		error = ip_output(m, tp->t_inpcb->inp_options, &tp->t_inpcb->inp_route,

(kgdb) list

854			ip->ip_off |= IP_DF;

855		}

856	#ifdef IPSEC

857	 	ipsec_setsocket(m, so);

858	#endif /*IPSEC*/

859		error = ip_output(m, tp->t_inpcb->inp_options, &tp->t_inpcb->inp_route,

860		    (so->so_options & SO_DONTROUTE), 0);

861	    }

862		if (error) {

863	


Script done on Fri May 25 22:42:58 2001

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