From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755409Ab1HCTMg (ORCPT ); Wed, 3 Aug 2011 15:12:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38869 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754568Ab1HCTMb (ORCPT ); Wed, 3 Aug 2011 15:12:31 -0400 Date: Wed, 3 Aug 2011 15:12:17 -0400 From: Dave Jones To: Linux Kernel Cc: dwmw2@infradead.org Subject: iommu lockdep trace on 3.0.0 Message-ID: <20110803191217.GA8720@redhat.com> Mail-Followup-To: Dave Jones , Linux Kernel , dwmw2@infradead.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (it says 2.6.40, but it's 3.0.0 in all but name) Hit this while booting. Dave [ 706.848926] ======================================================= [ 706.857477] [ INFO: possible circular locking dependency detected ] [ 706.863738] 2.6.40-4.fc15.x86_64.debug #1 [ 706.867746] ------------------------------------------------------- [ 706.874058] modprobe/1702 is trying to acquire lock: [ 706.879047] (&(&iommu->lock)->rlock){......}, at: [] domain_remove_one_dev_info+0x1c1/0x20b [ 706.889143] [ 706.889144] but task is already holding lock: [ 706.895029] (device_domain_lock){..-...}, at: [] domain_remove_one_dev_info+0x132/0x20b [ 706.904795] [ 706.904796] which lock already depends on the new lock. [ 706.904798] [ 706.913062] [ 706.913063] the existing dependency chain (in reverse order) is: [ 706.920608] [ 706.920609] -> #1 (device_domain_lock){..-...}: [ 706.926744] [] lock_acquire+0xbf/0x103 [ 706.932684] [] _raw_spin_lock_irqsave+0x45/0x7f [ 706.939408] [] domain_context_mapping_one+0x2b7/0x49a [ 706.946695] [] domain_context_mapping+0x3d/0xe5 [ 706.953437] [] iommu_prepare_identity_map+0x18f/0x1ae [ 706.960718] [] intel_iommu_init+0x7f0/0xa9d [ 706.967132] [] pci_iommu_init+0x29/0x54 [ 706.973166] [] do_one_initcall+0x7f/0x13a [ 706.979372] [] kernel_init+0xdf/0x159 [ 706.985266] [] kernel_thread_helper+0x4/0x10 [ 707.054277] [ 707.054278] -> #0 (&(&iommu->lock)->rlock){......}: [ 707.061381] [] __lock_acquire+0xa1a/0xcf7 [ 707.067580] [] lock_acquire+0xbf/0x103 [ 707.074883] [] _raw_spin_lock_irqsave+0x45/0x7f [ 707.081583] [] domain_remove_one_dev_info+0x1c1/0x20b [ 707.090185] [] device_notifier+0x54/0x7e [ 707.097489] [] notifier_call_chain+0x84/0xbb [ 707.103938] [] __blocking_notifier_call_chain+0x67/0x84 [ 707.111380] [] blocking_notifier_call_chain+0x14/0x16 [ 707.119981] [] __device_release_driver+0xcd/0xd2 [ 707.127814] [] driver_detach+0x99/0xc2 [ 707.133769] [] bus_remove_driver+0xba/0xdf [ 707.140200] [] driver_unregister+0x6a/0x75 [ 707.146468] [] pci_unregister_driver+0x44/0x8d [ 707.163869] [] sys_delete_module+0x1dd/0x251 [ 707.170319] [] system_call_fastpath+0x16/0x1b [ 707.177535] [ 707.177536] other info that might help us debug this: [ 707.177537] [ 707.185549] Possible unsafe locking scenario: [ 707.185550] [ 707.191498] CPU0 CPU1 [ 707.196043] ---- ---- [ 707.200574] lock(device_domain_lock); [ 707.204505] lock(&(&iommu->lock)->rlock); [ 707.211266] lock(device_domain_lock); [ 707.217679] lock(&(&iommu->lock)->rlock); [ 707.221933] [ 707.221934] *** DEADLOCK *** [ 707.221935] [ 707.227943] 4 locks held by modprobe/1702: [ 707.232066] #0: (&__lockdep_no_validate__){+.+.+.}, at: [] driver_detach+0x7a/0xc2 [ 707.241488] #1: (&__lockdep_no_validate__){+.+.+.}, at: [] driver_detach+0x88/0xc2 [ 707.250961] #2: (&(&priv->bus_notifier)->rwsem){.+.+.+}, at: [] __blocking_notifier_call_chain+0x4f/0x84 [ 707.262303] #3: (device_domain_lock){..-...}, at: [] domain_remove_one_dev_info+0x132/0x20b [ 707.272494] [ 707.272495] stack backtrace: [ 707.276915] Pid: 1702, comm: modprobe Not tainted 2.6.40-4.fc15.x86_64.debug #1 [ 707.284208] Call Trace: [ 707.286697] [] print_circular_bug+0x1f8/0x209 [ 707.292692] [] __lock_acquire+0xa1a/0xcf7 [ 707.298363] [] ? domain_remove_one_dev_info+0x1c1/0x20b [ 707.305226] [] lock_acquire+0xbf/0x103 [ 707.310619] [] ? domain_remove_one_dev_info+0x1c1/0x20b [ 707.324019] [] _raw_spin_lock_irqsave+0x45/0x7f [ 707.330219] [] ? domain_remove_one_dev_info+0x1c1/0x20b [ 707.337082] [] ? trace_hardirqs_off+0xd/0xf [ 707.342933] [] domain_remove_one_dev_info+0x1c1/0x20b [ 707.349624] [] device_notifier+0x54/0x7e [ 707.355216] [] notifier_call_chain+0x84/0xbb [ 707.361129] [] __blocking_notifier_call_chain+0x67/0x84 [ 707.368021] [] blocking_notifier_call_chain+0x14/0x16 [ 707.374710] [] __device_release_driver+0xcd/0xd2 [ 707.380995] [] driver_detach+0x99/0xc2 [ 707.386390] [] bus_remove_driver+0xba/0xdf [ 707.392163] [] driver_unregister+0x6a/0x75 [ 707.397904] [] pci_unregister_driver+0x44/0x8d [ 707.410102] [] sys_delete_module+0x1dd/0x251 [ 707.416014] [] ? retint_swapgs+0x13/0x1b [ 707.421582] [] ? audit_syscall_entry+0x11c/0x148 [ 707.427840] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 707.434297] [] system_call_fastpath+0x16/0x1b