Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jul 2009 12:02:15 +0200
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@spoerlein.net>
To:        Alan Cox <alc@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: panic: vm_page_free_toq: freeing mapped page
Message-ID:  <20090713100215.GK2145@acme.spoerlein.net>
In-Reply-To: <ca3526250907121658ve3d18c0t95e046c0191aeddf@mail.gmail.com>
References:  <20090712203105.GJ2145@acme.spoerlein.net> <ca3526250907121658ve3d18c0t95e046c0191aeddf@mail.gmail.com>

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

--Q68bSM7Ycu6FN28Q
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

On Sun, 12.07.2009 at 18:58:44 -0500, Alan Cox wrote:
> On Sun, Jul 12, 2009 at 3:31 PM, Ulrich Spörlein <uqs@spoerlein.net> wrote:
> > Hi,
> >
> > 8.0 BETA1 @ r195622 will panic reliably when running the clang static
> > analyzer on a buildworld with something like the following panic:
> >
> > panic: vm_page_free_toq: freeing mapped page 0xffffff00c9715b30
> > cpuid = 1
> > KDB: stack backtrace:
> > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> > panic() at panic+0x182
> > vm_page_free_toq() at vm_page_free_toq+0x1f6
> > vm_object_terminate() at vm_object_terminate+0xb7
> > vm_object_deallocate() at vm_object_deallocate+0x17a
> > _vm_map_unlock() at _vm_map_unlock+0x70
> > vm_map_remove() at vm_map_remove+0x6f
> > vmspace_free() at vmspace_free+0x56
> > vmspace_exec() at vmspace_exec+0x56
> > exec_new_vmspace() at exec_new_vmspace+0x133
> > exec_elf32_imgact() at exec_elf32_imgact+0x2ee
> > kern_execve() at kern_execve+0x3b2
> > execve() at execve+0x3d
> > syscall() at syscall+0x1af
> > Xfast_syscall() at Xfast_syscall+0xe1
> > --- syscall (59, FreeBSD ELF64, execve), rip = 0x800c20d0c, rsp =
> > 0x7fffffffd6f8, rbp = 0x7fffffffdbf0 ---
> > KDB: enter: panic
> > exclusive sleep mutex vm page queue mutex (vm page queue mutex) r = 0
> > (0xffffffff8095ea60) locked @ /data/freebsd-head/sys/vm/vm_object.c:688
> > exclusive sleep mutex vm object (standard object) r = 0
> > (0xffffff0046453798) locked @ /data/freebsd-head/sys/vm/vm_object.c:450
> > exclusive sleep mutex vm page queue mutex (vm page queue mutex) r = 0
> > (0xffffffff8095ea60) locked @ /data/freebsd-head/sys/vm/vm_object.c:688
> > exclusive sleep mutex vm object (standard object) r = 0
> > (0xffffff0046453798) locked @ /data/freebsd-head/sys/vm/vm_object.c:450
> > exclusive sleep mutex pmap (pmap) r = 0 (0xffffff003c8b02b8) locked @
> > /data/freebsd-head/sys/amd64/amd64/pmap.c:3955
> > shared sx user map (user map) r = 0 (0xffffff003c8b0200) locked @
> > /data/freebsd-head/sys/vm/vm_map.c:3522
> > exclusive sx so_rcv_sx (so_rcv_sx) r = 0 (0xffffff0004698e40) locked @
> > /data/freebsd-head/sys/kern/uipc_sockbuf.c:148
> >
> Can you please elaborate on the kernel configuration that you are using?

Of course, sorry for omitting this. Attached is a diff against the
GENERIC kernel. I just recently removed some COMPAT settings, FLOWTABLE and
doubled MSGBUF_SIZE to get a complete verbose dmesg dumped (for snd_hda
configuration, man that output is huge!).

I am currently updating kernel/world and will test a GENERIC afterwards.
I'll report back soon

Cheers,
Ulrich Spörlein

--Q68bSM7Ycu6FN28Q
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: inline; filename="kernel.diff"

--- GENERIC	2009-07-11 20:43:02.147681665 +0200
+++ ELMAR	2009-07-12 10:36:58.000000000 +0200
@@ -1,34 +1,5 @@
-#
-# GENERIC -- Generic kernel configuration file for FreeBSD/amd64
-#
-# For more information on this file, please read the config(5) manual page,
-# and/or the handbook section on Kernel Configuration Files:
-#
-#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
-#
-# The handbook is also available locally in /usr/share/doc/handbook
-# if you've installed the doc distribution, otherwise always see the
-# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
-# latest information.
-#
-# An exhaustive list of options and more detailed explanations of the
-# device lines is also present in the ../../conf/NOTES and NOTES files.
-# If you are in doubt as to the purpose or necessity of a line, check first
-# in NOTES.
-#
-# $FreeBSD: head/sys/amd64/conf/GENERIC 195618 2009-07-11 15:02:45Z rpaulo $
-
 cpu		HAMMER
-ident		GENERIC
-
-# To statically compile in device wiring instead of /boot/device.hints
-#hints		"GENERIC.hints"		# Default places to look for devices.
-
-# Use the following to compile in values accessible to the kernel
-# through getenv() (or kenv(1) in userland). The format of the file
-# is 'variable=value', see kenv(1)
-#
-# env		"GENERIC.env"
+ident		ELMAR
 
 makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
 
@@ -53,10 +24,7 @@
 options 	PSEUDOFS		# Pseudo-filesystem framework
 options 	GEOM_PART_GPT		# GUID Partition Tables.
 options 	GEOM_LABEL		# Provides labelization
-options 	COMPAT_43TTY		# BSD 4.3 TTY compat (sgtty)
 options 	COMPAT_IA32		# Compatible with i386 binaries
-options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
-options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
 options 	COMPAT_FREEBSD6		# Compatible with FreeBSD6
 options 	COMPAT_FREEBSD7		# Compatible with FreeBSD7
 options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
@@ -65,7 +33,6 @@
 options 	SYSVSHM			# SYSV-style shared memory
 options 	SYSVMSG			# SYSV-style message queues
 options 	SYSVSEM			# SYSV-style semaphores
-options 	P1003_1B_SEMAPHORES	# POSIX-style semaphores
 options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
 options 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
 options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
@@ -73,7 +40,6 @@
 options 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
 options 	AUDIT			# Security event auditing
 options 	MAC			# TrustedBSD MAC Framework
-options		FLOWTABLE		# per-cpu routing cache
 #options 	KDTRACE_FRAME		# Ensure frames are compiled in
 #options 	KDTRACE_HOOKS		# Kernel DTrace hooks
 
@@ -86,6 +52,9 @@
 options 	WITNESS			# Enable checks to detect deadlocks and cycles
 options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
 
+# increas dmesg buffer
+options 	MSGBUF_SIZE=81920
+
 # Make an SMP-capable kernel by default
 options 	SMP			# Symmetric MultiProcessor Kernel
 
@@ -102,65 +71,14 @@
 # ATA and ATAPI devices
 device		ata
 device		atadisk		# ATA disk drives
-device		ataraid		# ATA RAID drives
 device		atapicd		# ATAPI CDROM drives
-device		atapifd		# ATAPI floppy drives
-device		atapist		# ATAPI tape drives
 options 	ATA_STATIC_ID	# Static device numbering
 
-# SCSI Controllers
-device		ahc		# AHA2940 and onboard AIC7xxx devices
-options 	AHC_REG_PRETTY_PRINT	# Print register bitfields in debug
-					# output.  Adds ~128k to driver.
-device		ahd		# AHA39320/29320 and onboard AIC79xx devices
-options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug
-					# output.  Adds ~215k to driver.
-device		amd		# AMD 53C974 (Tekram DC-390(T))
-device		hptiop		# Highpoint RocketRaid 3xxx series
-device		isp		# Qlogic family
-#device		ispfw		# Firmware for QLogic HBAs- normally a module
-device		mpt		# LSI-Logic MPT-Fusion
-#device		ncr		# NCR/Symbios Logic
-device		sym		# NCR/Symbios Logic (newer chipsets + those of `ncr')
-device		trm		# Tekram DC395U/UW/F DC315U adapters
-
-device		adv		# Advansys SCSI adapters
-device		adw		# Advansys wide SCSI adapters
-device		aic		# Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
-device		bt		# Buslogic/Mylex MultiMaster SCSI adapters
-
 # SCSI peripherals
 device		scbus		# SCSI bus (required for SCSI)
-device		ch		# SCSI media changers
 device		da		# Direct Access (disks)
-device		sa		# Sequential Access (tape etc)
 device		cd		# CD
 device		pass		# Passthrough device (direct SCSI access)
-device		ses		# SCSI Environmental Services (and SAF-TE)
-
-# RAID controllers interfaced to the SCSI subsystem
-device		amr		# AMI MegaRAID
-device		arcmsr		# Areca SATA II RAID
-#XXX it is not 64-bit clean, -scottl
-#device		asr		# DPT SmartRAID V, VI and Adaptec SCSI RAID
-device		ciss		# Compaq Smart RAID 5*
-device		dpt		# DPT Smartcache III, IV - See NOTES for options
-device		hptmv		# Highpoint RocketRAID 182x
-device		hptrr		# Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
-device		iir		# Intel Integrated RAID
-device		ips		# IBM (Adaptec) ServeRAID
-device		mly		# Mylex AcceleRAID/eXtremeRAID
-device		twa		# 3ware 9000 series PATA/SATA RAID
-
-# RAID controllers
-device		aac		# Adaptec FSA RAID
-device		aacp		# SCSI passthrough for aac (requires CAM)
-device		ida		# Compaq Smart RAID
-device		mfi		# LSI MegaRAID SAS
-device		mlx		# Mylex DAC960 family
-#XXX pointer/int warnings
-#device		pst		# Promise Supertrak SX6000
-device		twe		# 3ware ATA RAID
 
 # atkbdc0 controls both the keyboard and the PS/2 mouse
 device		atkbdc		# AT keyboard controller
@@ -175,101 +93,18 @@
 
 # syscons is the default console driver, resembling an SCO console
 device		sc
+options 	SC_HISTORY_SIZE=3000
 
 device		agp		# support several AGP chipsets
 
-# PCCARD (PCMCIA) support
-# PCMCIA and cardbus bridge support
-device		cbb		# cardbus (yenta) bridge
-device		pccard		# PC Card (16-bit) bus
-device		cardbus		# CardBus (32-bit) bus
-
 # Serial (COM) ports
 device		uart		# Generic UART driver
 
-# 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
-
-# If you've got a "dumb" serial or parallel PCI card that is
-# supported by the puc(4) glue driver, uncomment the following
-# line to enable it (connects to sio, uart and/or ppc drivers):
-#device		puc
-
-# PCI Ethernet NICs.
-device		de		# DEC/Intel DC21x4x (``Tulip'')
-device		em		# Intel PRO/1000 Gigabit Ethernet Family
-device		igb		# Intel PRO/1000 PCIE Server Gigabit Family
-device		ixgbe		# Intel PRO/10GbE PCIE Ethernet Family
-device		le		# AMD Am7900 LANCE and Am79C9xx PCnet
-device		ti		# Alteon Networks Tigon I/II gigabit Ethernet
-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!
 device		miibus		# MII bus support
-device		ae		# Attansic/Atheros L2 FastEthernet
-device		age		# Attansic/Atheros L1 Gigabit Ethernet
-device		alc		# Atheros AR8131/AR8132 Ethernet
 device		ale		# Atheros AR8121/AR8113/AR8114 Ethernet
-device		bce		# Broadcom BCM5706/BCM5708 Gigabit Ethernet
-device		bfe		# Broadcom BCM440x 10/100 Ethernet
-device		bge		# Broadcom BCM570xx Gigabit Ethernet
-device		dc		# DEC/Intel 21143 and various workalikes
-device		et		# Agere ET1310 10/100/Gigabit Ethernet
-device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)
-device		jme		# JMicron JMC250 Gigabit/JMC260 Fast Ethernet
-device		lge		# Level 1 LXT1001 gigabit Ethernet
-device		msk		# Marvell/SysKonnect Yukon II Gigabit Ethernet
-device		nfe		# nVidia nForce MCP on-board Ethernet
-device		nge		# NatSemi DP83820 gigabit Ethernet
-#device		nve		# nVidia nForce MCP on-board Ethernet Networking
-device		pcn		# AMD Am79C97x PCI 10/100 (precedence over 'le')
-device		re		# RealTek 8139C+/8169/8169S/8110S
-device		rl		# RealTek 8129/8139
-device		sf		# Adaptec AIC-6915 (``Starfire'')
-device		sis		# Silicon Integrated Systems SiS 900/SiS 7016
-device		sk		# SysKonnect SK-984x & SK-982x gigabit Ethernet
-device		ste		# Sundance ST201 (D-Link DFE-550TX)
-device		stge		# Sundance/Tamarack TC9021 gigabit Ethernet
-device		tl		# Texas Instruments ThunderLAN
-device		tx		# SMC EtherPower II (83c170 ``EPIC'')
-device		vge		# VIA VT612x gigabit Ethernet
-device		vr		# VIA Rhine, Rhine II
-device		wb		# Winbond W89C840F
-device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')
-
-# ISA Ethernet NICs.  pccard NICs included.
-device		cs		# Crystal Semiconductor CS89x0 NIC
-# 'device ed' requires 'device miibus'
-device		ed		# NE[12]000, SMC Ultra, 3c503, DS8390 cards
-device		ex		# Intel EtherExpress Pro/10 and Pro/10+
-device		ep		# Etherlink III based cards
-device		fe		# Fujitsu MB8696x based cards
-device		sn		# SMC's 9000 series of Ethernet chips
-device		xe		# Xircom pccard Ethernet
-
-# Wireless NIC cards
-device		wlan		# 802.11 support
-options 	IEEE80211_DEBUG	# enable debug msgs
-options 	IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
-options 	IEEE80211_SUPPORT_MESH	# enable 802.11s D3.0 support
-device		wlan_wep	# 802.11 WEP support
-device		wlan_ccmp	# 802.11 CCMP support
-device		wlan_tkip	# 802.11 TKIP support
-device		wlan_amrr	# AMRR transmit rate control algorithm
-device		an		# Aironet 4500/4800 802.11 wireless NICs.
-device		ath		# Atheros pci/cardbus NIC's
-device		ath_hal		# pci/cardbus chip support
-options 	AH_SUPPORT_AR5416	# enable AR5416 tx/rx descriptors
-device		ath_rate_sample	# SampleRate tx rate control for ath
-device		ral		# Ralink Technology RT2500 wireless NICs.
-device		wi		# WaveLAN/Intersil/Symbol 802.11 wireless NICs.
 
 # Pseudo devices.
 device		loop		# Network loopback
@@ -292,17 +127,11 @@
 device		ohci		# OHCI PCI->USB interface
 device		ehci		# EHCI PCI->USB interface (USB 2.0)
 device		usb		# USB Bus (required)
-#device		udbp		# USB Double Bulk Pipe devices
 device		uhid		# "Human Interface Devices"
 device		ukbd		# Keyboard
 device		ulpt		# Printer
 device		umass		# Disks/Mass storage - Requires scbus and da
 device		ums		# Mouse
-device		rum		# Ralink Technology RT2501USB wireless NICs
-device		uath		# Atheros AR5523 wireless NICs
-device		ural		# Ralink Technology RT2500USB wireless NICs
-device		zyd		# ZyDAS zb1211/zb1211b wireless NICs
-device		urio		# Diamond Rio 500 MP3 player
 # USB Serial devices
 device		uark		# Technologies ARK3116 based serial adapters
 device		ubsa		# Belkin F5U103 and compatible serial adapters
@@ -312,14 +141,6 @@
 device		uslcom		# SI Labs CP2101/CP2102 serial adapters
 device		uvisor		# Visor and Palm devices
 device		uvscom		# USB serial support for DDI pocket's PHS
-# USB Ethernet, requires miibus
-device		aue		# ADMtek USB Ethernet
-device		axe		# ASIX Electronics USB Ethernet
-device		cdce		# Generic USB over Ethernet
-device		cue		# CATC USB Ethernet
-device		kue		# Kawasaki LSI USB Ethernet
-device		rue		# RealTek RTL8150 USB Ethernet
-device		udav		# Davicom DM9601E USB
 
 # FireWire support
 device		firewire	# FireWire bus code

--Q68bSM7Ycu6FN28Q--



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