From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Rostedt Subject: Re: lockdep splat in CPU hotplug Date: Wed, 22 Oct 2014 12:59:51 -0400 Message-ID: <20141022125951.64fb1ed3@gandalf.local.home> References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Jiri Kosina Cc: Peter Zijlstra , Ingo Molnar , "Rafael J. Wysocki" , Pavel Machek , Dave Jones , "Paul E. McKenney" , Daniel Lezcano , Nicolas Pitre , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org List-Id: linux-pm@vger.kernel.org On Wed, 22 Oct 2014 11:53:49 +0200 (CEST) Jiri Kosina wrote: > Still, the lockdep stacktrace is bogus and didn't really help > understanding this. Any idea why it's wrong? Could possibly be from a tail call? > > > ====================================================== > > [ INFO: possible circular locking dependency detected ] > > 3.18.0-rc1-00069-gc2661b8 #1 Not tainted > > ------------------------------------------------------- > > do_s2disk/2367 is trying to acquire lock: > > (cpuidle_lock){+.+.+.}, at: [] cpuidle_pause_and_lock+0x12/0x20 > > > > but task is already holding lock: > > (cpu_hotplug.lock#2){+.+.+.}, at: [] cpu_hotplug_begin+0x4a/0x80 > > > > which lock already depends on the new lock. > > > > the existing dependency chain (in reverse order) is: > > > > -> #1 (cpu_hotplug.lock#2){+.+.+.}: > > [] lock_acquire+0xac/0x130 > > [] mutex_lock_nested+0x5c/0x3b0 > > [] cpuidle_pause+0x12/0x30 Where exactly does that address point to? -- Steve > > [] dpm_suspend_noirq+0x44/0x340 > > [] dpm_suspend_end+0x38/0x80 > > [] hibernation_snapshot+0xcd/0x370 > > [] hibernate+0x168/0x210 > > [] state_store+0xe4/0xf0 > > [] kobj_attr_store+0xf/0x20 > > [] sysfs_kf_write+0x43/0x60 > > [] kernfs_fop_write+0xe7/0x170 > > [] vfs_write+0xb2/0x1f0 > > [] SyS_write+0x44/0xb0 > > [] system_call_fastpath+0x16/0x1b > > > > -> #0 (cpuidle_lock){+.+.+.}: > > [] __lock_acquire+0x1a03/0x1e30 > > [] lock_acquire+0xac/0x130 > > [] mutex_lock_nested+0x5c/0x3b0 > > [] cpuidle_pause_and_lock+0x12/0x20 > > [] acpi_processor_hotplug+0x45/0x8a [processor] > > [] acpi_cpu_soft_notify+0xad/0xe3 [processor] > > [] notifier_call_chain+0x53/0xa0 > > [] __raw_notifier_call_chain+0x9/0x10 > > [] cpu_notify+0x1e/0x40 > > [] _cpu_up+0x148/0x160 > > [] enable_nonboot_cpus+0xc9/0x1d0 > > [] hibernation_snapshot+0x265/0x370 > > [] hibernate+0x168/0x210 > > [] state_store+0xe4/0xf0 > > [] kobj_attr_store+0xf/0x20 > > [] sysfs_kf_write+0x43/0x60 > > [] kernfs_fop_write+0xe7/0x170 > > [] vfs_write+0xb2/0x1f0 > > [] SyS_write+0x44/0xb0 > > [] system_call_fastpath+0x16/0x1b > >