Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752809AbbBEU76 (ORCPT ); Thu, 5 Feb 2015 15:59:58 -0500 Received: from smtp2.provo.novell.com ([137.65.250.81]:56800 "EHLO smtp2.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750818AbbBEU75 (ORCPT ); Thu, 5 Feb 2015 15:59:57 -0500 Message-ID: <1423169986.6835.24.camel@stgolabs.net> Subject: Re: sched: memory corruption on completing completions From: Davidlohr Bueso To: Linus Torvalds Cc: Sasha Levin , Waiman Long , Peter Zijlstra , Ingo Molnar , Andrew Morton , Andrey Ryabinin , Dave Jones , LKML , Raghavendra K T Date: Thu, 05 Feb 2015 12:59:46 -0800 In-Reply-To: References: <54D2AA16.6030706@oracle.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.7 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1203 Lines: 33 On Wed, 2015-02-04 at 16:16 -0800, Linus Torvalds wrote: > And looking at the arch version, I think the paravirtualized code is crap. > > It does: > > prev = *lock; > add_smp(&lock->tickets.head, TICKET_LOCK_INC); > > /* add_smp() is a full mb() */ > > if (unlikely(lock->tickets.tail & TICKET_SLOWPATH_FLAG)) > __ticket_unlock_slowpath(lock, prev); > > > which is *exactly* the kind of things you cannot do with spinlocks, > because after you've done the "add_smp()" and released the spinlock > for the fast-path, you can't access the spinlock any more. Exactly > because a fast-path lock migth come in, and release the whole data > structure. > > As usual, the paravirt code is a horribly buggy heap of crud. Film at 11. Per http://lwn.net/Articles/495597/ which clearly describes the intent of the slowpath unlocking. Cc'ing Raghavendra. Thanks, Davidlohr -- 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/