Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp375090ybv; Thu, 13 Feb 2020 02:05:34 -0800 (PST) X-Google-Smtp-Source: APXvYqzmDooyH8TE98G6qHtRj8dF2Ynog1UKDSC+fjeQm0ZUPgf3jYaRBD9ywjW7V0C/JHUGcqaz X-Received: by 2002:a05:6808:aba:: with SMTP id r26mr2274787oij.4.1581588334258; Thu, 13 Feb 2020 02:05:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581588334; cv=none; d=google.com; s=arc-20160816; b=jbrF+gxS8uD+UjMVTajh+oErRm1osCzyX2NrgqpDNFPpQcBRyzDP/SZXlBON4jdOLB /+yMsiEEk3VFuAEomghNRKQF2kg1nsszlrB1vGnT/s2Qx8YTihkZmHe2R0yrd2YnkBcO n8gL8VJYEBQWMqFAnCGEq5sdN/922DtxQ5kLY2dBgBwuIodSL3hlvWfA58OrTDnpXYBw 3YMA1kX0vK3sdxf+wkpGJiYgZcegIvW+EZvXuGsea3RscIe87li6IrG9lnE1vX5o7oNm lfqo/4DivTWLxpGYRAspvhUfJXJtdwyCeKKQV4wjexdfsBD7brQFsmtRN1/r4Be5gwfo LHdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=HebYrbvjxiwD82rqhk5skGCS9SAKzV2Ccz0jZqspI+4=; b=Z3y4KwShFCasFaT+/RUsFpXc/kXgAplKB9MFXpwkmQwl01JLumHdbqiapZQZOrDCzA DSMJqD8OOhT6rckJsptuFkSpN1jberZ2vLOiJ//OpJ/mObJCPkXINJgv1Z10mu+3aK/B fYFfc6kPfVpfCh2iFY8qBVU7ZYucHIZtuCBJGT/ZsAgXS7FoA7BuqbT2U7PX64I++MLJ icHWTSLH5v2Xu8PypBAJExvrVvyJrKbebhIeBBRRUeT0/tfHIGALU3IWqC4V3mEqnLoY wGdxO7tiMefAPNXlmkj9MwznV7nN507YCpvJmVE/gIV/IO9qB5tNVZ2RtOV3056UdzhH Ormw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1ca9dCV5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a205si983799oif.159.2020.02.13.02.05.20; Thu, 13 Feb 2020 02:05:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1ca9dCV5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729666AbgBMKEI (ORCPT + 99 others); Thu, 13 Feb 2020 05:04:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:46410 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729440AbgBMKEI (ORCPT ); Thu, 13 Feb 2020 05:04:08 -0500 Received: from willie-the-truck (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 996C42073C; Thu, 13 Feb 2020 10:04:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581588248; bh=Z6nftmq7JNaTrmiiMEw1a3aSpCEEwo051FSLj6v+n1s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=1ca9dCV5da4xBo9tGQNQvbCi2Madj6+NmjnrM2KG7PGrC0nrxjRGScqZJ+AAqeytd PaMwy2pwiLwyG764P9qIyiAMZd1CMdWDTfzC7E6iZ4DHq8iiGszguSEG/XqhgKy+qh 4PMKuvIlDoX+GqYLV0h+3vLBLrFry+Fis/i4q81Q= Date: Thu, 13 Feb 2020 10:04:03 +0000 From: Will Deacon To: Peter Zijlstra Cc: Michal Simek , linux-kernel@vger.kernel.org, monstr@monstr.eu, git@xilinx.com, arnd@arndb.de, Stefan Asserhall load and store , Boqun Feng , paulmck@kernel.org Subject: Re: [PATCH 7/7] microblaze: Do atomic operations by using exclusive ops Message-ID: <20200213100403.GA1405@willie-the-truck> References: <20200212155500.GB14973@hirez.programming.kicks-ass.net> <4b46b33e-14ad-7097-f0db-2915ac772f15@xilinx.com> <20200213085849.GL14897@hirez.programming.kicks-ass.net> <20200213091651.GA14946@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200213091651.GA14946@hirez.programming.kicks-ass.net> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 13, 2020 at 10:16:51AM +0100, Peter Zijlstra wrote: > On Thu, Feb 13, 2020 at 09:58:49AM +0100, Peter Zijlstra wrote: > > > The thing is, your bog standard LL/SC _SHOULD_ fail the SC if someone > > else does a regular store to the same variable. See the example in > > Documentation/atomic_t.txt. > > > > That is, a competing SW/SWI should result in the interconnect responding > > with something other than EXOKAY, the SWX should fail and MSR[C] <- 1. > > The thing is; we have code that relies on this behaviour. There are a > few crusty SMP archs that sorta-kinda limp along (mostly by disabling > some of the code and praying the rest doesn't trigger too often), but we > really should not allow more broken SMP archs. I did find this in the linked pdf: | If the store [swx] is successful, the sequence of instructions from | the semaphore load to the semaphore store appear to be executed | atomically - no other device modified the semaphore location between | the read and the update. which sounds like we're ok, although it could be better worded. One part I haven't figured out is what happens if you take an interrupt between the lwx and the swx and whether you can end up succeeding thanks to somebody else's reservation. Also, the manual is silent about the interaction with TLB invalidation and just refers to "address" when talking about the reservation. What happens if a user thread triggers CoW while another is in the middle of a lwx/swx? Will