Date: Wed, 2 Oct 2002 17:00:55 -0700 (PDT) From: Ansh Kanwar <anshuman@expertcity.com> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/43605: enabling polling in the kernel causes page fault/crash Message-ID: <200210030000.g9300ta5092273@www.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 43605
>Category: kern
>Synopsis: enabling polling in the kernel causes page fault/crash
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Oct 02 17:10:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Ansh Kanwar
>Release: 4.6.2
>Organization:
Expertcity.com
>Environment:
FreeBSD rack1-8.nwk 4.6.2-RELEASE-p2 FreeBSD 4.6.2-RELEASE-p2 #0: Fri Sep 27 11:47:02 PDT 2002 root@rack1-8.nwk:/usr/obj/usr/src/sys/EC-RACK-02 i386
>Description:
Device polling was turned on through sysctl kern.polling.enable=1. As the throughput increased, the machine crashed with the following messages on the console:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0xa0205800
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc013211c
stack pointer = 0x10:0xc02820f0
frame pointer = 0x10:0xc0282100
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 = net
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:0xc01f9318
stack pointer = 0x10:0xc0281f14
frame pointer = 0x10:0xc0281f1c
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 = net bio cpoll stalled [1] in phase 2
am
trap number = 12
panic: page fault
Uptime: 16h32m22s
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0xa0205800
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc013211c
stack pointer = 0x10:0xc0281ce0
frame pointer = 0x10:0xc0281cf0
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 = net bio cam
trap number = 12
panic: page fault
Uptime: 16h32m22s
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0xa0205800
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc013211c
stack pointer = 0x10:0xc0281aac
frame pointer = 0x10:0xc0281abc
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 = net bio cam
trap number = 12
panic: page fault
Uptime: 16h32m23s
--------------
The machine had a custom kernel with the kern config:
START CONFIG FILE EC-RACK-02
___#
___# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.43 2002/05/23 17:04:01 obrien Exp $
___#
___# Compiled by: Anshuman Kanwar
___# Date : Aug 15 2002
___#
___# -02: added polling option jb
___machine i386
___cpu I686_CPU
___ident EC-RACK-02
___maxusers 0
___#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
___options MATH_EMULATE #Support for x87 emulation
___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 UFS_DIRHASH #Improve performance on big directories
___options MFS #Memory Filesystem
___options MD_ROOT #MD is a potential root device
___options NFS #Network Filesystem
___options NFS_ROOT #NFS usable as root device, NFS required
___options MSDOSFS #MSDOS Filesystem
___options CD9660 #ISO 9660 Filesystem
___options CD9660_ROOT #CD-ROM usable as root, CD9660 required
___options PROCFS #Process filesystem
___options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
___options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
___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
___# increase max (and default) datafile size
___options MAXDSIZ="(2048*1024*1024)"
___options DFLDSIZ="(2048*1024*1024)"
___options INCLUDE_CONFIG_FILE # Include this file in kernel
___options IPFIREWALL #firewall
___options IPFIREWALL_VERBOSE #print information about dropped packets
___options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
___options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
___options IPFIREWALL_FORWARD #
___options MAXUSERS=0
___options DEVICE_POLLING
___pseudo-device vlan
___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
___#
___# If you have a Toshiba Libretto with its Y-E Data PCMCIA floppy,
___# don't use the above line for fdc0 but the following one:
___#device fdc0
___# ATA and ATAPI devices
byte 171466___options MFS #Memory Filesystem
___options MD_ROOT #MD is a potential root device
___options NFS #Network Filesystem
___options NFS_ROOT #NFS usable as root device, NFS required
___options MSDOSFS #MSDOS Filesystem
___options CD9660 #ISO 9660 Filesystem
___options CD9660_ROOT #CD-ROM usable as root, CD9660 required
___options PROCFS #Process filesystem
___options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
___options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
___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
___# increase max (and default) datafile size
___options MAXDSIZ="(2048*1024*1024)"
___options DFLDSIZ="(2048*1024*1024)"
___options INCLUDE_CONFIG_FILE # Include this file in kernel
___options IPFIREWALL #firewall
___options IPFIREWALL_VERBOSE #print information about dropped packets
___options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
___options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
___options IPFIREWALL_FORWARD #
___options MAXUSERS=0
___options DEVICE_POLLING
___pseudo-device vlan
___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
___#
___# If you have a Toshiba Libretto with its Y-E Data PCMCIA floppy,
___# don't use the above line for fdc0 but the following one:
___#device fdc0
___# 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
___# SCSI Controllers
___# 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
___# Serial (COM) ports
___device sio0 at isa? port IO_COM1 irq 4
___device sio1 at isa? port IO_COM2 flags 0x10 irq 3
___device sio2 at isa? disable port IO_COM3 irq 5
___device sio3 at isa? disable port IO_COM4 irq 9
___# PCI Ethernet NICs.
___device de # DEC/Intel DC21x4x (``Tulip'')
___device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman'')
___device txp # 3Com 3cR990 (``Typhoon'')
___device vx # 3Com 3c590, 3c595 (``Vortex'')
___# PCI Ethernet NICs that use the common MII bus controller code.
___# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
___# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
___device miibus # MII bus support
___device fxp # Intel EtherExpress PRO/100B (82557, 82558)
___# Pseudo devices - the number indicates how many units to allocate.
___pseudo-device loop # Network loopback
___pseudo-device ether # Ethernet support
___#pseudo-device sl 1 # Kernel SLIP
___#pseudo-device ppp 1 # Kernel PPP
___pseudo-device tun # Packet tunnel.
___pseudo-device pty # Pseudo-ttys (telnet etc)
___pseudo-device md # Memory "disks"
___pseudo-device gif # 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
END CONFIG FILE EC-RACK-02
>How-To-Repeat:
Not known precisely. Turn on device polling, and pump data at increasing bandwidth.
>Fix:
Unknown.
>Release-Note:
>Audit-Trail:
>Unformatted:
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?200210030000.g9300ta5092273>
