From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753960AbcGLQoA (ORCPT ); Tue, 12 Jul 2016 12:44:00 -0400 Received: from www.linutronix.de ([62.245.132.108]:35097 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751014AbcGLQn7 (ORCPT ); Tue, 12 Jul 2016 12:43:59 -0400 Date: Tue, 12 Jul 2016 18:41:29 +0200 (CEST) From: Thomas Gleixner To: kernel test robot cc: lkp@01.org, tipbuild@zytor.com, LKML , "H. Peter Anvin" , LKML , Vince Weaver , Stephane Eranian , Peter Zijlstra , Linus Torvalds , Kan Liang , Jiri Olsa , Borislav Petkov , Arnaldo Carvalho de Melo , Arnaldo Carvalho de Melo , Alexander Shishkin , Adam Borowski , Sebastian Andrzej Siewior , Anna-Maria Gleixner , Ingo Molnar Subject: Re: [perf/x86] 8de4a00661: WARNING: CPU: 0 PID: 1 at kernel/locking/mutex-debug.c:80 debug_mutex_unlock+0x20c/0x2b3 In-Reply-To: <57851c63.jJgXfR29tgQSoJ3w%xiaolong.ye@intel.com> Message-ID: References: <57851c63.jJgXfR29tgQSoJ3w%xiaolong.ye@intel.com> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 13 Jul 2016, kernel test robot wrote: > [ 1.863354] WARNING: CPU: 0 PID: 1 at kernel/locking/mutex-debug.c:80 debug_mutex_unlock+0x20c/0x2b3 > [ 1.877193] DEBUG_LOCKS_WARN_ON(lock->owner != current) > > [ 1.979431] [] mutex_unlock+0x9/0xb > [ 1.979431] [] mutex_unlock+0x9/0xb > [ 1.990691] [] cpuhp_store_callbacks+0x5a/0x63 I have a hard time to figure out how that can happen: static void cpuhp_store_callbacks(enum cpuhp_state state, const char *name, int (*startup)(unsigned int cpu), int (*teardown)(unsigned int cpu)) { /* (Un)Install the callbacks for further cpu hotplug operations */ struct cpuhp_step *sp; mutex_lock(&cpuhp_state_mutex); sp = cpuhp_get_step(state); sp->startup = startup; sp->teardown = teardown; sp->name = name; mutex_unlock(&cpuhp_state_mutex); } Confused ....