Date: Fri, 16 Feb 2001 08:56:45 +0200 From: Valentin Nechayev <netch@iv.nn.kiev.ua> To: freebsd-bugs@freebsd.org Subject: panic on dummynet code Message-ID: <20010216085645.A381@iv.nn.kiev.ua>
next in thread | raw e-mail | index | archive | help
System is 5.0-CURRENT-20010211.
The panic was occured ~2 seconds after commands:
ipfw pipe 1 config bw 300
ipfw add 1000 pipe 1 tcp from any to 193.193.193.107 80
and while wget downloaded a file from http server at 193.193.193.107.
Panic description from console: fault 12: page fault in kernel mode:
supervisor read, page not present; EIP=0xc01e42aa, ESP=0xc7bebedc
Command: transmit_event+0x7a: movl 0x14(%ebx),%eax
EBX is 0x1006
This command is from DN_KEY_LEQ() macro in transmit_event(), file
netinet/ip_dummynet.c, line is marked below with '>':
==={{{
static void
transmit_event(struct dn_pipe *pipe)
{
struct dn_pkt *pkt ;
> while ( (pkt = pipe->head) && DN_KEY_LEQ(pkt->output_time, curr_time) ) {
/*
* first unlink, then call procedures, since ip_input() can invoke
* ip_output() and viceversa, thus causing nested calls
*/
pipe->head = DN_NEXT(pkt) ;
===}}}
pipe equals to 0xc0b79b00, but pipe->head (placed at faulty command in %ebx)
is 0x1006, i.e. outside of kernel address space.
Stack is (excluding debugger and panic routines):
(kgdb) bt
[...]
#10 0xc027ace7 in trap ()
#11 0xc01e42aa in transmit_event ()
#12 0xc01e485e in ready_event_wfq ()
#13 0xc01e48f7 in dummynet ()
#14 0xc01891a6 in softclock ()
#15 0xc0176f6b in ithread_loop ()
#16 0xc0176381 in fork_exit ()
Kernel config is
==={{{
machine i386
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident nn12
maxusers 32
hints "GENERIC.hints" #Default places to look for devices.
options INET #InterNETworking
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPDIVERT #divert sockets
options TCP_DROP_SYNFIN #drop TCP packets with SYN+FIN
options TCP_RESTRICT_RST #restrict emission of TCP RST
options DUMMYNET
options FFS #Berkeley Fast Filesystem
# options FFS_ROOT #FFS usable as root device [keep this!]
options SOFTUPDATES
options MFS #Memory Filesystem
options NFS #Network Filesystem
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options PROCFS #Process filesystem
options EXT2FS
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=5000
options HZ=230
options MSGBUF_SIZE=81920
options DDB
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor
options INCLUDE_CONFIG_FILE
options KTRACE #ktrace(1) support
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options VFS_AIO
options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING
options _KPOSIX_VERSION=199309L
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
device random
device isa
device eisa
device pci
#options COMPAT_OLDISA # compatability shims for lnc, fe, le
#options COMPAT_OLDPCI # compatability shims for lnc, vx
# Floppy drives
device fdc
# ATA and ATAPI devices
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 atkbdc 1
device atkbd
device psm
device vga
options VESA
# splash screen/screen saver
device splash
# syscons is the default console driver, resembling an SCO console
device sc 1
options SC_HISTORY_SIZE=200 # number of history buffer lines
options SC_MOUSE_CHAR=0x3 # char code for text mode mouse cursor
# Floating point support - do not disable.
device npx
# Power management support (see LINT for more options)
device apm
# Serial (COM) ports
device sio
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
# Pseudo devices - the number indicates how many units to allocated.
device loop # Network loopback
device ether # Ethernet support
device sl # Kernel SLIP
device ppp 1 # Kernel PPP
device tun # Packet tunnel.
device pty 32 # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device speaker
device bpf 2 # Berkeley packet filter
device vn 4
device snp
device pcm
device sbc
device pca
===}}}
Kernel core is being kept yet, please feel free to ask additional info.
/netch
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?20010216085645.A381>
