From owner-freebsd-current@FreeBSD.ORG Sat Aug 8 16:11:33 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 52E13106564A for ; Sat, 8 Aug 2009 16:11:33 +0000 (UTC) (envelope-from jason.harmening@gmail.com) Received: from mail-bw0-f206.google.com (mail-bw0-f206.google.com [209.85.218.206]) by mx1.freebsd.org (Postfix) with ESMTP id C967D8FC16 for ; Sat, 8 Aug 2009 16:11:32 +0000 (UTC) Received: by bwz2 with SMTP id 2so1367639bwz.43 for ; Sat, 08 Aug 2009 09:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=Pckk+qzkc60+Uuv539rjUj1Q74/o/NOZNBXyfmDsG4I=; b=bVIecId5k+684vX8+tSTokK8Vaui02sehTFEKDYn4yu7aVDoYPhNBD17D7xkqVJcjt l0kouzj2aoH6uikBWfL4Q7e3nuWbrrcTQ0mhreRviS3jAvM68e3yYnCfNGX08HW3okvJ EYr2TrP66XttOSGrJNZTJVgkfqlqZHx11NMvM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=oToAoLseWc1T+bjgzLg2HfDUqeURANHb+hEM/0gX4G2NhTFaSuVzt5LjTMDMSqLagl IaQO0VKhQqpiwl2tdaln0aKkqFQtCS83v+MAxC3ky7/KOeIHBhGVKS/Dq8nqVxR/oH+B uYGU+APXWYDwgBrulagG203L+Qq0QOxRzoYZk= MIME-Version: 1.0 Received: by 10.223.115.146 with SMTP id i18mr565120faq.9.1249746361789; Sat, 08 Aug 2009 08:46:01 -0700 (PDT) Date: Sat, 8 Aug 2009 10:46:01 -0500 Message-ID: <2d1264630908080846r3c73e0a5h7df2db83096401d@mail.gmail.com> From: Jason Harmening To: freebsd-current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Sat, 08 Aug 2009 17:16:14 +0000 Subject: LORs during module unload X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2009 16:11:33 -0000 Hi all, When testing my kernel module against a kernel built yesterday, I noticed the following LORs when unloading the top-level module (which also automatically unloaded some dependency modules): lock order reversal: 1st 0xffffffff807af4a0 module subsystem sx lock (module subsystem sx lock) @ /usr/src/sys/kern/kern_linker.c:602 2nd 0xffffffff807d0900 newbus (newbus) @ /usr/src/sys/kern/subr_bus.c:4127 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x32 _witness_debugger() at _witness_debugger+0x1e witness_checkorder() at witness_checkorder+0x8c7 _sx_xlock() at _sx_xlock+0x74 driver_module_handler() at driver_module_handler+0x49 module_quiesce() at module_quiesce+0x38 linker_file_unload() at linker_file_unload+0x98 kern_kldunload() at kern_kldunload+0xdf kldunloadf() at kldunloadf+0x1a syscall() at syscall+0x2e9 Xfast_syscall() at Xfast_syscall+0xe1 --- syscall (444, FreeBSD ELF64, kldunloadf), rip = 0x8006989fc, rsp = 0x7fffffffe2c8, rbp = 0x2 --- lock order reversal: 1st 0xffffffff807ae8c0 kernel linker (kernel linker) @ /usr/src/sys/kern/kern_linker.c:1068 2nd 0xffffffff807d0900 newbus (newbus) @ /usr/src/sys/kern/subr_bus.c:4127 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x32 _witness_debugger() at _witness_debugger+0x1e witness_checkorder() at witness_checkorder+0x8c7 _sx_xlock() at _sx_xlock+0x74 driver_module_handler() at driver_module_handler+0x49 module_unload() at module_unload+0x38 linker_file_unload() at linker_file_unload+0x13a kern_kldunload() at kern_kldunload+0xdf kldunloadf() at kldunloadf+0x1a syscall() at syscall+0x2e9 Xfast_syscall() at Xfast_syscall+0xe1 --- syscall (444, FreeBSD ELF64, kldunloadf), rip = 0x8006989fc, rsp = 0x7fffffffe2c8, rbp = 0x2 --- iicbus2: detached lock order reversal: 1st 0xffffffff807ae8c0 kernel linker (kernel linker) @ /usr/src/sys/kern/kern_linker.c:1068 2nd 0xffffffff807b0ec0 sysctl lock (sysctl lock) @ /usr/src/sys/kern/kern_sysctl.c:256 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x32 _witness_debugger() at _witness_debugger+0x1e witness_checkorder() at witness_checkorder+0x8c7 _sx_xlock() at _sx_xlock+0x74 sysctl_ctx_free() at sysctl_ctx_free+0x2d device_sysctl_fini() at device_sysctl_fini+0x22 device_detach() at device_detach+0x1dd cx88_i2c_destroy() at cx88_i2c_destroy+0x48 device_detach() at device_detach+0x8b cx23885_teardown() at cx23885_teardown+0x7d cx88_release_client() at cx88_release_client+0x86 cx88_common_detach() at cx88_common_detach+0x20 device_detach() at device_detach+0x8b driver_module_handler() at driver_module_handler+0x395 module_unload() at module_unload+0x38 linker_file_unload() at linker_file_unload+0x13a kern_kldunload() at kern_kldunload+0xdf kldunloadf() at kldunloadf+0x1a syscall() at syscall+0x2e9 Xfast_syscall() at Xfast_syscall+0xe1 --- syscall (444, FreeBSD ELF64, kldunloadf), rip = 0x8006989fc, rsp = 0x7fffffffe2c8, rbp = 0x2 --- --Jason