Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933358Ab0LUACK (ORCPT ); Mon, 20 Dec 2010 19:02:10 -0500 Received: from mail-bw0-f66.google.com ([209.85.214.66]:45986 "EHLO mail-bw0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932472Ab0LUACI (ORCPT ); Mon, 20 Dec 2010 19:02:08 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=FxmkbA377teQhgHtyClJngL6/VD4kklGECUmLldXfKDMGhL1n8M0ZnWkSkqrrtoA34 cfdx7lMT1s+hfBrV0ZFQFa5/cnrBLlDjiJeohUvXG9QHm5RgLhU4yYzonEtCv/vxLeUs QsfDU05ptodZinWHYwH/ooalCOob6bBmfrMpk= Date: Tue, 21 Dec 2010 01:02:03 +0100 From: Frederic Weisbecker To: Peter Zijlstra Cc: LKML , Thomas Gleixner , "Paul E. McKenney" , Ingo Molnar , Steven Rostedt , Lai Jiangshan , Andrew Morton , Anton Blanchard , Tim Pepper Subject: Re: [RFC PATCH 08/15] smp: Don't warn if irq are disabled but we don't wait for the ipi Message-ID: <20101221000201.GF1715@nowhere> References: <1292858662-5650-1-git-send-email-fweisbec@gmail.com> <1292858662-5650-9-git-send-email-fweisbec@gmail.com> <1292861039.5021.18.camel@laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1292861039.5021.18.camel@laptop> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2068 Lines: 51 On Mon, Dec 20, 2010 at 05:03:59PM +0100, Peter Zijlstra wrote: > On Mon, 2010-12-20 at 16:24 +0100, Frederic Weisbecker wrote: > > The comment in smp_call_function_single() says it wants the irqs > > to be enabled otherwise it may deadlock. > > > > I can't find the reason for that though, except if we had to wait > > for a self triggered IPI but we execute the local IPI by just > > calling the function in place. > > > > In doubt, only suppress the warning if we are not waiting for the > > IPI to complete as it should really not raise any deadlock. > > > > Signed-off-by: Frederic Weisbecker > > Cc: Thomas Gleixner > > Cc: Peter Zijlstra > > Cc: Paul E. McKenney > > Cc: Ingo Molnar > > Cc: Steven Rostedt > > Cc: Lai Jiangshan > > Cc: Andrew Morton > > Cc: Anton Blanchard > > Cc: Tim Pepper > > --- > > kernel/smp.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/kernel/smp.c b/kernel/smp.c > > index 12ed8b0..886a406 100644 > > --- a/kernel/smp.c > > +++ b/kernel/smp.c > > @@ -289,7 +289,7 @@ int smp_call_function_single(int cpu, smp_call_func_t func, void *info, > > * send smp call function interrupt to this cpu and as such deadlocks > > * can't happen. > > */ > > - WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() > > + WARN_ON_ONCE(cpu_online(this_cpu) && wait && irqs_disabled() > > && !oops_in_progress); > > > > if (cpu == this_cpu) { > > You just deadlocked the machine.. note how you can still wait on the > previous csd in csd_lock(). Ah right. I should then use __smp_call_function_single(). -- 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/