Skip site navigation (1)Skip section navigation (2)
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>