From owner-freebsd-current Fri Dec 6 13:27:39 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 820AF37B401 for ; Fri, 6 Dec 2002 13:27:32 -0800 (PST) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id E1C1943EA9 for ; Fri, 6 Dec 2002 13:27:31 -0800 (PST) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.12.6/8.12.6) id gB6LRUxE084674 for current@freebsd.org; Fri, 6 Dec 2002 15:27:30 -0600 (CST) (envelope-from dan) Date: Fri, 6 Dec 2002 15:27:29 -0600 From: Dan Nelson To: current@freebsd.org Subject: New lock order reversal - "vnode interlock" Message-ID: <20021206212728.GC29693@dan.emsphone.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="qMm9M+Fa2AknHoGS" Content-Disposition: inline X-OS: FreeBSD 5.0-RC X-message-flag: Outlook Error User-Agent: Mutt/1.5.1i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG --qMm9M+Fa2AknHoGS Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I haven't seen this one reported yet. FreeBSD dan.emsphone.com 5.0-RC FreeBSD 5.0-RC #228: Thu Dec 5 17:28:33 CST 2002 dan@dan.emsphone.com:/usr/src/sys/i386/compile/DANSMP i386 lock order reversal 1st 0xc2d454b0 vnode interlock (vnode interlock) @ ../../../ufs/ffs/ffs_snapshot.c:1876 2nd 0xc04255e0 vm page queue mutex (vm page queue mutex) @ ../../../kern/vfs_bio.c:1480 acquiring duplicate lock of same type: "vnode interlock" 1st vnode interlock @ ../../../ufs/ffs/ffs_snapshot.c:1876 2nd vnode interlock @ ../../../kern/vfs_subr.c:1610 -- Dan Nelson dnelson@allantgroup.com --qMm9M+Fa2AknHoGS Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=DANSMP machine i386 # cpu "I386_CPU" # cpu "I486_CPU" # cpu "I586_CPU" cpu "I686_CPU" # CPU_ENABLE_SSE enables SSE/MMX2 instructions support. options CPU_ENABLE_SSE ident DAN maxusers 120 # SMP options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions COPTFLAGS="-O -pipe" # use some optimizations makeoptions NO_CPU_COPTFLAGS="yes" makeoptions NO_MODULES_OLD="yes" makeoptions NO_MODULES="yes" makeoptions NO_WERROR="yes" #options MATH_EMULATE #Support for x87 emulation options INET #InterNETworking #options INET6 #IPv6 communications protocols options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) #options NCP #NetWare Core protocol #options IPX #IPX/SPX communications protocols #options NWFS #NetWare filesystem options FFS #Berkeley Fast Filesystem #options UFS_EXTATTR # extattr support #options UFS_EXTATTR_AUTOSTART #options UFS_ACL # ACL support options UFS_DIRHASH #Improve performance on big directories options NFSCLIENT #Network File System options NFSSERVER #Network File System options PROCFS #Process filesystem options PSEUDOFS #Pseudo-filesystem framework #options NODEVFS #disable devices filesystem options CD9660 #ISO 9660 filesystem options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] options COMPAT_FREEBSD4 #Compatible with FreeBSD 4 options COMPAT_AOUT #Exec 2.2 binaries options SCSI_DELAY=500 #Be optimistic about Joe SCSI device #options GEOM #Use new partition code #options UCONSOLE #Allow users to grab the console #options USERCONFIG #boot -c editor #options VISUAL_USERCONFIG #visual boot -c editor device isa device pci device agp device fdc device aha device ahc device adw options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # SCSI peripherals device scbus # SCSI bus (required) device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) # The 'ATA' driver supports all ATA and ATAPI devices, including PC Card # devices. You only need one "device ata" for it to find all # PCI and PC Card ATA/ATAPI devices on modern machines. device ata device atapicam # emulate ATAPI devices as SCSI ditto via CAM # needs CAM to be present (scbus & pass) # atkbdc0 controlls both the keyboard and the PS/2 mouse device atkbdc device atkbd device psm device vga options VGA_WIDTH90 # support 90 column modes options VESA # support for VESA video modes # splash screen/screen saver device splash # syscons is the default console driver, resembling an SCO console device sc options SC_HISTORY_SIZE=500 # number of history buffer lines device npx # # Laptop support (see LINT for more options) # device apm # PCCARD (PCMCIA) support #device card0 #device pcic0 at card? #device pcic1 at card? device sio device ppc device ppbus device lpt device plip device ppi # MII bus support, required for some 10/100 NICs device miibus # Order is important here due to intrusive probes, do *not* alphabetize # this list of network interfaces until the probes have been fixed. # Right now it appears that the ie0 must be probed before ep0. See # revision 1.20 of this file. #device de device fxp device dc #device rl #device tl #device tx #device vx device xl device loop device ether device tun device pty device gzip # Exec gzipped a.out's device md #Memory/malloc disk device snp #Snoop device - to look at pty/vty/etc.. device streams # for IPv6 #device gif 4 #IPv6 and IPv4 tunneling #device faith 1 #for IPv6 and IPv4 translation # KTRACE enables the system-call tracing facility ktrace(2). # This adds 4 KB bloat to your kernel, and slightly increases # the costs of each syscall. options KTRACE #kernel tracing # This provides support for System V shared memory. # options SYSVSHM options SYSVSEM options SYSVMSG # The `bpfilter' device enables the Berkeley Packet Filter. Be # aware of the legal and administrative consequences of enabling this # option. The number of devices determines the maximum number of # simultaneous BPF clients programs runnable. device bpf #Berkeley packet filter options DDB #Enable the kernel debugger #options DDB_UNATTENDED #Don't drop into ddb on panic options INVARIANTS #Enable calls of extra sanity checking options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS options MUTEX_DEBUG #Enable various extra assertions in the mutex code options WITNESS #Enable mutex checks to detects deadlocks and cycles options WITNESS_SKIPSPIN #Disable the witness checks on spin mutexes #options WITNESS_DDB #Drop into debugger on locking problem options ALT_BREAK_TO_DEBUGGER options GDB_REMOTE_CHAT options MROUTING # Multicast routing options IPFIREWALL #firewall options IPFIREWALL_VERBOSE #print information about # dropped packets options IPFIREWALL_FORWARD #enable transparent proxy support options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default options IPDIVERT #divert sockets options DUMMYNET #bandwidth limiter options INCLUDE_CONFIG_FILE # Include this file in kernel # Size of the kernel message buffer. Should be N * pagesize. options MSGBUF_SIZE=40960 options SOFTUPDATES options CLK_USE_I8254_CALIBRATION options CLK_USE_TSC_CALIBRATION # Not controlled by `snd' # device pca - conflicts with device speaker # The newpcm driver (use INSTEAD of snd0 and all VOXWARE drivers!). # Note that motherboard sound devices may require options PNPBIOS. # # For non-pnp sound cards with no bridge drivers only: #device pcm0 at isa? port ? irq 10 drq 1 flags 0x0 # # For pnp sound cards: device pcm # The bridge drivers for sound cards. Do not forget pcm as well. # device sbc # sbc: Creative SoundBlaster ISA PnP # device joy # joystick driver device speaker #Play IBM BASIC-style noises out your speaker # options AHC_ALLOW_MEMIO # System Management Bus support provided by the 'smbus' device. device smbus #device intpm #device alpm #device ichsmb device viapm device smb # Philips i2c bus support is provided by the `iicbus' device. device iicbus device iicbb device ic device iic device iicsmb #device pcf # USB support device ohci # OHCI controller device uhci # UHCI controller device usb # General USB code (mandatory for USB) device ugen # Generic USB device driver device umodem # USB modem support # real-time kernel extensions #options P1003_1B options _KPOSIX_PRIORITY_SCHEDULING #options _KPOSIX_VERSION=199309L # Cryptographically secure random number generator; /dev/[u]random device random # ACPI Experimental Driver device acpi # Linux compatability options COMPAT_LINUX # Disk quotas are supported when this option is enabled. options QUOTA #enable disk quotas # options MALLOC_PROFILE # gather stats on uma #Enable pci resources left off by a "lazy" BIOS: #options PCI_ENABLE_IO_MODES --qMm9M+Fa2AknHoGS-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message