Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755571AbZKFFxq (ORCPT ); Fri, 6 Nov 2009 00:53:46 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752380AbZKFFxp (ORCPT ); Fri, 6 Nov 2009 00:53:45 -0500 Received: from hera.kernel.org ([140.211.167.34]:36464 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752157AbZKFFxp (ORCPT ); Fri, 6 Nov 2009 00:53:45 -0500 Message-ID: <4AF3B9BD.9050300@kernel.org> Date: Fri, 06 Nov 2009 14:53:01 +0900 From: Tejun Heo User-Agent: Thunderbird 2.0.0.23 (X11/20090817) MIME-Version: 1.0 To: Jiri Kosina CC: Ingo Molnar , Peter Zijlstra , Yinghai Lu , Thomas Gleixner , cl@linux-foundation.org, linux-kernel@vger.kernel.org Subject: Re: irq lock inversion References: <86802c440911041008q4969b9bdk15b4598c40bb84bd@mail.gmail.com> <4AF25FC7.4000502@kernel.org> <20091105082102.GA2870@elte.hu> <4AF28D7A.6020209@kernel.org> In-Reply-To: X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2178 Lines: 59 Hello, Jiri. Jiri Kosina wrote: > Hmm, I wonder why I don't see this lockdep warning myself with > head on 1836d9592, even though I have > > CONFIG_PROVE_LOCKING=y > CONFIG_TRACE_IRQFLAGS=y > > ... ? You need pcpu_mem_free() hit vfree() to trigger the warning by allocating a lot of small percpu areas so that allocation map inside a chunk becomes larger than 4k and then get extended once more. > Anyway, how about something like this? (I can't verify myself that it even > fixes the warning, as I don't see it for some odd reason) > > From: Jiri Kosina > Subject: lockdep: avoid false positives about irq-safety > > Commit 403a91b1 ("percpu: allow pcpu_alloc() to be called > with IRQs off") introduced this warning: > > ========================================================= > [ INFO: possible irq lock inversion dependency detected ] > 2.6.32-rc5-tip-04815-g12f0f93-dirty #745 > --------------------------------------------------------- > hub 1-3:1.0: state 7 ports 2 chg 0000 evt 0004 > ksoftirqd/65/199 just changed the state of lock: > (pcpu_lock){..-...}, at: [] free_percpu+0x38/0x104 > but this lock took another, SOFTIRQ-unsafe lock in the past: > (vmap_area_lock){+.+...} > > and interrupts could create inverse lock ordering between them. > > This warning is bogus -- sched_init() is being called very early with IRQs > disabled, and the irqsave/restore code paths in pcpu_alloc() are only for early > init. The path can never be called from irq context once the early init > finishes. Rationale for this is explained in changelog of the commit mentioned > above. > > This problem can be encountered generally in any other early code running > with IRQs off and using irqsave/irqrestore. > > Reported-by: Yinghai Lu > Signed-off-by: Jiri Kosina Looks good to me. Ingo, what do you think? Thanks. -- tejun -- 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/