Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Jun 2009 13:10:24 +0200
From:      Willem Jan Withagen <wjw@withagen.nl>
To:        freebsd-current@freebsd.org
Subject:   From Thread: UFS/VFS lock order reversal on stock 8.0-200812-AMD64
Message-ID:  <4A49F2A0.1080005@withagen.nl>
References:  E8FEAE26C87DED4EB49EFF99D1C7A51DFF6929@ald-mail02.corporate.aldridge.com

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------030305090609080602000201
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

It is about the following LOR:
http://sources.zabbadoz.net/freebsd/lor/261.html

lock order reversal:
  1st 0xc2e03e00 bufwait (bufwait) @ sys/kern/vfs_bio.c:2443
  2nd 0xc3592200 dirhash (dirhash) @ sys/ufs/ufs/ufs_dirhash.c:254

Quoted from the thread about this topic from last januari:

============
Gavin@ writes:

Cool.  It's always good to have more people using and testing -CURRENT,
I just wanted to make sure you knew what you were getting yourself in
for :)

 > I pulled out the 'extra debugging', made world and kernel, and rebooted.
 > Notice the 5th line of da7's drive ID being interleaved with 'SMP: AP CPU 
#1 Launched!'
 >
 > I'm fairly sure this is not a good thing, if for no other reason that 
'apparent garbage' in dmesg is not useful.

It's not a good thing, but it's a known issue and is purely cosmetic.
=============

Only in my case it seems not so harmless.
I get this one on rebooting, which then freezes the process.
Under 7.2 the system (although from 2002) did reboot.

Could this LOR be responsible for not rebooting?
If not, how do I go about in finding what does prevent the reboot.

It just halts at the stage where it gives the uptime after syncing all disks.
Normaly reboot follows, but there are no messages for that.
And a hardware reset is required.

--WjW


--------------030305090609080602000201
Content-Type: text/plain;
 name="ASTERSD.conf"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ASTERSD.conf"

cpu		I586_CPU
cpu		I686_CPU
ident		ASTERBSD

# 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"

makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

options 	SCHED_ULE		# ULE scheduler
options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	INET6			# IPv6 communications protocols
options 	SCTP			# Stream Control Transmission Protocol
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	NFSCLIENT		# Network Filesystem Client
options 	NFSLOCKD		# Network Lock Manager
options 	MSDOSFS			# MSDOS Filesystem
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
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_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
options 	KTRACE			# ktrace(1) support
options 	STACK			# stack(9) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-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
options 	STOP_NMI		# Stop CPUS using NMI instead of IPI
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_HOOKS		# Kernel DTrace hooks

# Debugging for use in -current
options 	KDB			# Enable kernel debugger support.
options 	DDB			# Support DDB.
options 	GDB			# Support remote GDB.
options 	INVARIANTS		# Enable calls of extra sanity checking
options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
options 	WITNESS			# Enable checks to detect deadlocks and cycles
options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed

# To make an SMP kernel, the next two lines are needed
device		apic			# I/O APIC

# CPU frequency control
device		cpufreq

# Bus support.
device		acpi
device		pci

# ATA and ATAPI devices
device		ata
device		atadisk		# ATA disk drives
device		atapicd		# ATAPI CDROM drives
options 	ATA_STATIC_ID	# Static device numbering

# SCSI peripherals
device		scbus		# SCSI bus (required for SCSI)
device		da		# Direct Access (disks)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		kbdmux		# keyboard multiplexer

device		vga		# VGA video card driver

device		splash		# Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device		sc

device		agp		# support several AGP chipsets

# Add suspend/resume support for the i8254.
device		pmtimer

# Serial (COM) ports
device		uart		# Generic UART driver

# PCI Ethernet NICs.
device		de		# DEC/Intel DC21x4x (``Tulip'')
device		em		# Intel PRO/1000 Gigabit Ethernet Family
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		bge		# Broadcom BCM570xx Gigabit Ethernet
device		dc		# DEC/Intel 21143 and various workalikes
device		fxp		# Intel EtherExpress PRO/100B (82557, 82558)
device		re		# RealTek 8139C+/8169/8169S/8110S
device		rl		# RealTek 8129/8139
device		sf		# Adaptec AIC-6915 (``Starfire'')
device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Pseudo devices.
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		tun		# Packet tunnel.
device		pty		# BSD-style compatibility pseudo ttys
device		md		# Memory "disks"
device		gif		# IPv6 and IPv4 tunneling
device		faith		# IPv6-to-IPv4 relaying (translation)
device		firmware	# firmware assist module

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device		bpf		# Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
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
# USB Serial devices
device		u3g		# USB-based 3G modems (Option, Huawei, Sierra)
device		uark		# Technologies ARK3116 based serial adapters
device		ubsa		# Belkin F5U103 and compatible serial adapters
device		uftdi		# For FTDI usb serial adapters
device		uplcom		# Prolific PL-2303 serial adapters
device		uslcom		# SI Labs CP2101/CP2102 serial adapters

# is no longer in the config 
# options IPR_VJ
device "i4bdss1"
device "i4b"
device "i4btrc"
device "i4bctl"
device "i4brbch"
device "i4btel"
device "i4bipr"

#
# If you need more than 8 units please
# edit "/usr/src/sys/i4b/include/i4b_global.h",
# until further.
#

device ihfc
device sound
# device pcm
#if device pcm does not exist




--------------030305090609080602000201
Content-Type: text/plain;
 name="dmesg.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="dmesg.txt"

Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #5: Mon Jun 29 21:55:30 CEST 2009
    wjw@Asterbsd.digiware.nl:/usr/obj/usr/src/sys/ASTERBSD
WARNING: WITNESS option enabled, expect reduced performance.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Duron(tm) Processor (807.19-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x631  Stepping = 1
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
  AMD Features=0xc0440800<SYSCALL,<b18>,MMX+,3DNow!+,3DNow!>
real memory  = 402653184 (384 MB)
avail memory = 512016384 (488 MB)
kbd1 at kbdmux0
pcib0: <Host to PCI bridge> pcibus 0 on motherboard
pir0: <PCI Interrupt Routing Table: 9 Entries> on motherboard
pci0: <PCI bus> on pcib0
agp0: <VIA 82C8363 (Apollo KT133x/KM133) host to PCI bridge> on hostb0
agp0: aperture size is 256M
pcib1: <PCIBIOS PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
vgapci0: <VGA-compatible display> mem 0xf8000000-0xf8ffffff,0xfa000000-0xfbffffff irq 11 at device 0.0 on pci1
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C686B UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xd800-0xd80f at device 7.1 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 12 at device 7.2 on pci0
uhci0: [ITHREAD]
usbus0: <VIA 83C572 USB controller> on uhci0
uhci1: <VIA 83C572 USB controller> port 0xd000-0xd01f irq 12 at device 7.3 on pci0
uhci1: [ITHREAD]
usbus1: <VIA 83C572 USB controller> on uhci1
ihfc0: <HFC-2BDS0 128K PCI ISDN adapter> port 0xa400-0xa407 mem 0xf7800000-0xf78000ff irq 12 at device 11.0 on pci0
ihfc0: [ITHREAD]
ihfc0: Attaching I4B controller 0.
ihfc0: Creating /dev/ihfc0.X.
rl0: <RealTek 8139 10/100BaseTX> port 0xa000-0xa0ff mem 0xf7000000-0xf70000ff at device 12.0 on pci0
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> PHY 0 on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:02:44:58:cc:e2
rl0: [ITHREAD]
pci0: <multimedia, audio> at device 14.0 (no driver attached)
cpu0 on motherboard
pmtimer0 on isa0
uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 4 flags 0x10 pnpid PNP0501 on isa0
uart0: [FILTER]
uart1: <16550 or compatible> at port 0x2f8-0x2ff irq 3 pnpid PNP0501 on isa0
uart1: [FILTER]
unknown: <PNP0c01> can't assign resources (memory)
atrtc0: <AT realtime clock> at port 0x70-0x75 irq 8 pnpid PNP0b00 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 irq 1 pnpid PNP0303 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0c01> can't assign resources (memory)
Timecounter "TSC" frequency 807191790 Hz quality 800
Timecounters tick every 1.000 msec
i4btrc: 64 ISDN trace device(s) attached
i4brbch: 8 raw B channel access device(s) attached
i4btel: 8 ISDN telephony interface device(s) attached
i4bipr: 8 IP over raw HDLC ISDN device(s) attached
i4bctl: ISDN system control port attached
capi: CAPI call control device attached, v2.11
i4b: ISDN call control device attached
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
ad0: 19092MB <Maxtor 2B020H1 WAH21PB0> at ata0-master UDMA100
ugen0.1: <VIA> at usbus0
uhub0: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <VIA> at usbus1
uhub1: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
GEOM: ad0: geometry does not match label (255h,63s != 16h,63s).
acd0: CDROM <LG CD-ROM CRD-8521B/1.02> at ata1-slave PIO4
WARNING: WITNESS option enabled, expect reduced performance.
Root mount waiting for: usbus1 usbus0
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
Trying to mount root from ufs:/dev/ad0a
WARNING: / was not properly dismounted
WARNING: /tmp was not properly dismounted
WARNING: /usr was not properly dismounted
WARNING: /var was not properly dismounted

--------------030305090609080602000201--



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