Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755760Ab1EDVUZ (ORCPT ); Wed, 4 May 2011 17:20:25 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:39765 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751961Ab1EDVUY (ORCPT ); Wed, 4 May 2011 17:20:24 -0400 MIME-Version: 1.0 In-Reply-To: References: <20110504101932.GA3392@elte.hu> <20110504112746.GE8007@htj.dyndns.org> <20110504132022.GA17294@htj.dyndns.org> <20110504142532.GC17294@htj.dyndns.org> From: Linus Torvalds Date: Wed, 4 May 2011 14:19:31 -0700 Message-ID: Subject: Re: [block IO crash] Re: 2.6.39-rc5-git2 boot crashs To: Christoph Lameter Cc: Pekka Enberg , Thomas Gleixner , Tejun Heo , Ingo Molnar , Jens Axboe , Andrew Morton , werner , "H. Peter Anvin" , Linux Kernel Mailing List Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 996 Lines: 24 On Wed, May 4, 2011 at 2:06 PM, Linus Torvalds wrote: > > The problem is that cmpxchg *IS*NOT*AN*CMPXCHG*AT*ALL*. Not even on UP. Btw, the really sad thing is that as far as I can tell, the cmpxchg64_local() function that we define actually gets this *right*, with a helper function that actually works (and disables interrupts) and all the alternative_io() stuff to then use the right instruction automatically if the CPU supports it, rather than making it a hardcoded decision. But we don't use it, because the "percpu_cmpxchg8b_double()" code rolls its own inferior version, and has slightly different semantics (ie the whole "return value success" thing). So close, but yet so far. Linus -- 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/