Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752056AbWHNSd0 (ORCPT ); Mon, 14 Aug 2006 14:33:26 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752055AbWHNSd0 (ORCPT ); Mon, 14 Aug 2006 14:33:26 -0400 Received: from mx1.redhat.com ([66.187.233.31]:28103 "EHLO mx1.redhat.com") by vger.kernel.org with ESMTP id S1752049AbWHNSdZ (ORCPT ); Mon, 14 Aug 2006 14:33:25 -0400 Date: Mon, 14 Aug 2006 14:33:19 -0400 From: Dave Jones To: Andrew Morton Cc: Linux Kernel Subject: workqueue lockdep bug. Message-ID: <20060814183319.GJ15569@redhat.com> Mail-Followup-To: Dave Jones , Andrew Morton , Linux Kernel Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.2i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4800 Lines: 121 Andrew, I merged the workqueue changes from -mm into the Fedora-devel kernel to kill off those billion cpufreq lockdep warnings. The bug has now mutated into this: (Trimmed version of log from https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=202223) Dave > Breaking affinity for irq 185 > Breaking affinity for irq 193 > Breaking affinity for irq 209 > CPU 1 is now offline > lockdep: not fixing up alternatives. > > ======================================================= > [ INFO: possible circular locking dependency detected ] > 2.6.17-1.2548.fc6 #1 > ------------------------------------------------------- > pm-hibernate/4335 is trying to acquire lock: > ((cpu_chain).rwsem){..--}, at: [] blocking_notifier_call_chain+0x11/0x2d > > but task is already holding lock: > (workqueue_mutex){--..}, at: [] mutex_lock+0x21/0x24 > > which lock already depends on the new lock. > > > the existing dependency chain (in reverse order) is: > > -> #1 (workqueue_mutex){--..}: > [] lock_acquire+0x4b/0x6d > [] __mutex_lock_slowpath+0xbc/0x20a > [] mutex_lock+0x21/0x24 > [] workqueue_cpu_callback+0xfd/0x1ee > [] notifier_call_chain+0x20/0x31 > [] blocking_notifier_call_chain+0x1d/0x2d > [] _cpu_down+0x47/0x1c4 > [] disable_nonboot_cpus+0x9b/0x11a > [] prepare_processes+0xe/0x41 > [] pm_suspend_disk+0x9/0xf3 > [] enter_state+0x54/0x1b7 > [] state_store+0x86/0x9c > [] subsys_attr_store+0x20/0x25 > [] sysfs_write_file+0xab/0xd1 > [] vfs_write+0xab/0x157 > [] sys_write+0x3b/0x60 > [] syscall_call+0x7/0xb > > -> #0 ((cpu_chain).rwsem){..--}: > [] lock_acquire+0x4b/0x6d > [] down_read+0x2d/0x40 > [] blocking_notifier_call_chain+0x11/0x2d > [] _cpu_down+0x12c/0x1c4 > [] disable_nonboot_cpus+0x9b/0x11a > [] prepare_processes+0xe/0x41 > [] pm_suspend_disk+0x9/0xf3 > [] enter_state+0x54/0x1b7 > [] state_store+0x86/0x9c > [] subsys_attr_store+0x20/0x25 > [] sysfs_write_file+0xab/0xd1 > [] vfs_write+0xab/0x157 > [] sys_write+0x3b/0x60 > [] syscall_call+0x7/0xb > > other info that might help us debug this: > > 2 locks held by pm-hibernate/4335: > #0: (cpu_add_remove_lock){--..}, at: [] mutex_lock+0x21/0x24 > #1: (workqueue_mutex){--..}, at: [] mutex_lock+0x21/0x24 > > stack backtrace: > [] show_trace_log_lvl+0x58/0x159 > [] show_trace+0xd/0x10 > [] dump_stack+0x19/0x1b > [] print_circular_bug_tail+0x59/0x64 > [] __lock_acquire+0x80d/0x99c > [] lock_acquire+0x4b/0x6d > [] down_read+0x2d/0x40 > [] blocking_notifier_call_chain+0x11/0x2d > [] _cpu_down+0x12c/0x1c4 > [] disable_nonboot_cpus+0x9b/0x11a > [] prepare_processes+0xe/0x41 > [] pm_suspend_disk+0x9/0xf3 > [] enter_state+0x54/0x1b7 > [] state_store+0x86/0x9c > [] subsys_attr_store+0x20/0x25 > [] sysfs_write_file+0xab/0xd1 > [] vfs_write+0xab/0x157 > [] sys_write+0x3b/0x60 > [] syscall_call+0x7/0xb > DWARF2 unwinder stuck at syscall_call+0x7/0xb > Leftover inexact backtrace: > [] show_trace+0xd/0x10 > [] dump_stack+0x19/0x1b > [] print_circular_bug_tail+0x59/0x64 > [] __lock_acquire+0x80d/0x99c > [] lock_acquire+0x4b/0x6d > [] down_read+0x2d/0x40 > [] blocking_notifier_call_chain+0x11/0x2d > [] _cpu_down+0x12c/0x1c4 > [] disable_nonboot_cpus+0x9b/0x11a > [] prepare_processes+0xe/0x41 > [] pm_suspend_disk+0x9/0xf3 > [] enter_state+0x54/0x1b7 > [] state_store+0x86/0x9c > [] subsys_attr_store+0x20/0x25 > [] sysfs_write_file+0xab/0xd1 > [] vfs_write+0xab/0x157 > [] sys_write+0x3b/0x60 > [] syscall_call+0x7/0xb > CPU1 is down > Stopping tasks: -- http://www.codemonkey.org.uk - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/