From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80438C49361 for ; Thu, 17 Jun 2021 14:21:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6BB55613A9 for ; Thu, 17 Jun 2021 14:21:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232073AbhFQOX2 (ORCPT ); Thu, 17 Jun 2021 10:23:28 -0400 Received: from foss.arm.com ([217.140.110.172]:54246 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231892AbhFQOX1 (ORCPT ); Thu, 17 Jun 2021 10:23:27 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1DF6E12FC; Thu, 17 Jun 2021 07:21:19 -0700 (PDT) Received: from C02TD0UTHF1T.local (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 83CBC3F719; Thu, 17 Jun 2021 07:21:16 -0700 (PDT) Date: Thu, 17 Jun 2021 15:20:46 +0100 From: Mark Rutland To: Andy Lutomirski Cc: "Russell King (Oracle)" , the arch/x86 maintainers , Dave Hansen , Linux Kernel Mailing List , linux-mm@kvack.org, Andrew Morton , Mathieu Desnoyers , Nicholas Piggin , "Peter Zijlstra (Intel)" , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 7/8] membarrier: Remove arm (32) support for SYNC_CORE Message-ID: <20210617142046.GA87858@C02TD0UTHF1T.local> References: <2142129092ff9aa00e600c42a26c4015b7f5ceec.1623813516.git.luto@kernel.org> <20210617103524.GA82133@C02TD0UTHF1T.local> <20210617112305.GK22278@shell.armlinux.org.uk> <20210617113349.GB82133@C02TD0UTHF1T.local> <394219d4-36a6-4e7f-a03c-8590551b099a@www.fastmail.com> <20210617135133.GA86101@C02TD0UTHF1T.local> <33241b25-4d45-4278-a4e6-ec9c12b0e1f3@www.fastmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <33241b25-4d45-4278-a4e6-ec9c12b0e1f3@www.fastmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 17, 2021 at 07:00:26AM -0700, Andy Lutomirski wrote: > > > On Thu, Jun 17, 2021, at 6:51 AM, Mark Rutland wrote: > > On Thu, Jun 17, 2021 at 06:41:41AM -0700, Andy Lutomirski wrote: > > > > In any event, I’m even more convinced that no new SYNC_CORE arches > > > should be added. We need a new API that just does the right thing. > > > > My intuition is the other way around, and that this is a gnereally > > useful thing for architectures that require context synchronization. > > Except that you can't use it in a generic way. You have to know the > specific rules for your arch. That's generally true for modifying instruction streams though? The man page for cacheflush(2) calls out that it is not portable. I think what's necessary here is some mandatory per-arch documentation? > > It's not clear to me what "the right thing" would mean specifically, and > > on architectures with userspace cache maintenance JITs can usually do > > the most optimal maintenance, and only need help for the context > > synchronization. > > > > This I simply don't believe -- I doubt that any sane architecture > really works like this. I wrote an email about it to Intel that > apparently generated internal discussion but no results. Consider: > > mmap(some shared library, some previously unmapped address); > > this does no heavyweight synchronization, at least on x86. There is > no "serializing" instruction in the fast path, and it *works* despite > anything the SDM may or may not say. Sure, and I called this case out specifically when I said: | * Where we can guarantee that a CPU cannot possibly have an | instruction in-flight (e.g. due to a lack of a mapping to fetch | instructions from), nothing is necessary. This is what we rely on | when faulting in code pages. In these cases, the CPU is liable to | take fault on the missing translation anyway. .. what really matters is whether the CPU had the oppoprtunity to fetch something stale; the context synchronization is necessary to discard that. Bear in mind that in many cases where this could occur in theory, we don't hit in practice because CPUs don't happen to predict/speculate as aggressively as they are permitted to. On arm/arm64 it's obvious that this is a problem because the documentation clearly defines the boundaries of what a CPU is permitted to do, whereas on other architectures docuentation is not necessarily as clear whether this is permited or whether the architecture mandates additional guarantees. > We can and, IMO, should develop a sane way for user programs to > install instructions into VMAs, for security-conscious software to > verify them (by splitting the read and write sides?), and for their > consumers to execute them, without knowing any arch details. And I > think this can be done with no IPIs except for possible TLB flushing > when needed, at least on most architectures. It would require a > nontrivial amount of design work, and it would not resemble > sys_cacheflush() or SYNC_CORE. I'm not opposed to adding new interfaces for stuff like that, but I don't think that membarrier(SYNC_CORE) or cacheflush(2) are necessarily wrong as-is. Thanks, Mark. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4F1CC49EA2 for ; Thu, 17 Jun 2021 14:23:17 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6AF9960FE5 for ; Thu, 17 Jun 2021 14:23:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6AF9960FE5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PgmKjfx+T84Umsvm4Wcuuv8FvWR4gts0dyyFdgPKveM=; b=jzKJeGM9DdEXrY DssJgreDLqMCOomzkEVgq6bgYQncTFBhhI9esHAZsTIw5zCU7p9fxj5Q8IoGcq3oIRpfLOzcd4k2W kyE159bUS/k14q8pgFAlm9iYTDTGfiWw6rrq5ovFl16CW8CmrlGKRMJabA8i8mHn0ARa/EyP3OVUx 47bIxRPSlza7cCj4M0J2gyIWgam00xUMhqryxOUWIrns4hCBoOrY2/ltQ3MxmXc4QYBh+NSvIQQO7 YPsB8IS1kgTyvbBITxCC00359R04cRgd3Q1FlpG7nb8+TMEPZIsJUjy6NFJ2GhxMfKKpZnMZDm333 QHfM+X8+kKjIyj23en2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ltstp-00AfnM-1J; Thu, 17 Jun 2021 14:21:41 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ltstX-00Afi9-3T for linux-arm-kernel@lists.infradead.org; Thu, 17 Jun 2021 14:21:25 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1DF6E12FC; Thu, 17 Jun 2021 07:21:19 -0700 (PDT) Received: from C02TD0UTHF1T.local (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 83CBC3F719; Thu, 17 Jun 2021 07:21:16 -0700 (PDT) Date: Thu, 17 Jun 2021 15:20:46 +0100 From: Mark Rutland To: Andy Lutomirski Cc: "Russell King (Oracle)" , the arch/x86 maintainers , Dave Hansen , Linux Kernel Mailing List , linux-mm@kvack.org, Andrew Morton , Mathieu Desnoyers , Nicholas Piggin , "Peter Zijlstra (Intel)" , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 7/8] membarrier: Remove arm (32) support for SYNC_CORE Message-ID: <20210617142046.GA87858@C02TD0UTHF1T.local> References: <2142129092ff9aa00e600c42a26c4015b7f5ceec.1623813516.git.luto@kernel.org> <20210617103524.GA82133@C02TD0UTHF1T.local> <20210617112305.GK22278@shell.armlinux.org.uk> <20210617113349.GB82133@C02TD0UTHF1T.local> <394219d4-36a6-4e7f-a03c-8590551b099a@www.fastmail.com> <20210617135133.GA86101@C02TD0UTHF1T.local> <33241b25-4d45-4278-a4e6-ec9c12b0e1f3@www.fastmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33241b25-4d45-4278-a4e6-ec9c12b0e1f3@www.fastmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210617_072123_285112_EE006211 X-CRM114-Status: GOOD ( 30.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBKdW4gMTcsIDIwMjEgYXQgMDc6MDA6MjZBTSAtMDcwMCwgQW5keSBMdXRvbWlyc2tp IHdyb3RlOgo+IAo+IAo+IE9uIFRodSwgSnVuIDE3LCAyMDIxLCBhdCA2OjUxIEFNLCBNYXJrIFJ1 dGxhbmQgd3JvdGU6Cj4gPiBPbiBUaHUsIEp1biAxNywgMjAyMSBhdCAwNjo0MTo0MUFNIC0wNzAw LCBBbmR5IEx1dG9taXJza2kgd3JvdGU6Cj4gCj4gPiA+IEluIGFueSBldmVudCwgSeKAmW0gZXZl biBtb3JlIGNvbnZpbmNlZCB0aGF0IG5vIG5ldyBTWU5DX0NPUkUgYXJjaGVzCj4gPiA+IHNob3Vs ZCBiZSBhZGRlZC4gV2UgbmVlZCBhIG5ldyBBUEkgdGhhdCBqdXN0IGRvZXMgdGhlIHJpZ2h0IHRo aW5nLiAKPiA+IAo+ID4gTXkgaW50dWl0aW9uIGlzIHRoZSBvdGhlciB3YXkgYXJvdW5kLCBhbmQg dGhhdCB0aGlzIGlzIGEgZ25lcmVhbGx5Cj4gPiB1c2VmdWwgdGhpbmcgZm9yIGFyY2hpdGVjdHVy ZXMgdGhhdCByZXF1aXJlIGNvbnRleHQgc3luY2hyb25pemF0aW9uLgo+IAo+IEV4Y2VwdCB0aGF0 IHlvdSBjYW4ndCB1c2UgaXQgaW4gYSBnZW5lcmljIHdheS4gIFlvdSBoYXZlIHRvIGtub3cgdGhl Cj4gc3BlY2lmaWMgcnVsZXMgZm9yIHlvdXIgYXJjaC4KClRoYXQncyBnZW5lcmFsbHkgdHJ1ZSBm b3IgbW9kaWZ5aW5nIGluc3RydWN0aW9uIHN0cmVhbXMgdGhvdWdoPyBUaGUgbWFuCnBhZ2UgZm9y IGNhY2hlZmx1c2goMikgY2FsbHMgb3V0IHRoYXQgaXQgaXMgbm90IHBvcnRhYmxlLgoKSSB0aGlu ayB3aGF0J3MgbmVjZXNzYXJ5IGhlcmUgaXMgc29tZSBtYW5kYXRvcnkgcGVyLWFyY2ggZG9jdW1l bnRhdGlvbj8KCj4gPiBJdCdzIG5vdCBjbGVhciB0byBtZSB3aGF0ICJ0aGUgcmlnaHQgdGhpbmci IHdvdWxkIG1lYW4gc3BlY2lmaWNhbGx5LCBhbmQKPiA+IG9uIGFyY2hpdGVjdHVyZXMgd2l0aCB1 c2Vyc3BhY2UgY2FjaGUgbWFpbnRlbmFuY2UgSklUcyBjYW4gdXN1YWxseSBkbwo+ID4gdGhlIG1v c3Qgb3B0aW1hbCBtYWludGVuYW5jZSwgYW5kIG9ubHkgbmVlZCBoZWxwIGZvciB0aGUgY29udGV4 dAo+ID4gc3luY2hyb25pemF0aW9uLgo+ID4gCj4gCj4gVGhpcyBJIHNpbXBseSBkb24ndCBiZWxp ZXZlIC0tIEkgZG91YnQgdGhhdCBhbnkgc2FuZSBhcmNoaXRlY3R1cmUKPiByZWFsbHkgd29ya3Mg bGlrZSB0aGlzLiAgSSB3cm90ZSBhbiBlbWFpbCBhYm91dCBpdCB0byBJbnRlbCB0aGF0Cj4gYXBw YXJlbnRseSBnZW5lcmF0ZWQgaW50ZXJuYWwgZGlzY3Vzc2lvbiBidXQgbm8gcmVzdWx0cy4gIENv bnNpZGVyOgo+IAo+IG1tYXAoc29tZSBzaGFyZWQgbGlicmFyeSwgc29tZSBwcmV2aW91c2x5IHVu bWFwcGVkIGFkZHJlc3MpOwo+IAo+IHRoaXMgZG9lcyBubyBoZWF2eXdlaWdodCBzeW5jaHJvbml6 YXRpb24sIGF0IGxlYXN0IG9uIHg4Ni4gIFRoZXJlIGlzCj4gbm8gInNlcmlhbGl6aW5nIiBpbnN0 cnVjdGlvbiBpbiB0aGUgZmFzdCBwYXRoLCBhbmQgaXQgKndvcmtzKiBkZXNwaXRlCj4gYW55dGhp bmcgdGhlIFNETSBtYXkgb3IgbWF5IG5vdCBzYXkuCgpTdXJlLCBhbmQgSSBjYWxsZWQgdGhpcyBj YXNlIG91dCBzcGVjaWZpY2FsbHkgd2hlbiBJIHNhaWQ6Cgp8ICAgKiBXaGVyZSB3ZSBjYW4gZ3Vh cmFudGVlIHRoYXQgYSBDUFUgY2Fubm90IHBvc3NpYmx5IGhhdmUgYW4KfCAgICAgaW5zdHJ1Y3Rp b24gaW4tZmxpZ2h0IChlLmcuIGR1ZSB0byBhIGxhY2sgb2YgYSBtYXBwaW5nIHRvIGZldGNoCnwg ICAgIGluc3RydWN0aW9ucyBmcm9tKSwgbm90aGluZyBpcyBuZWNlc3NhcnkuIFRoaXMgaXMgd2hh dCB3ZSByZWx5IG9uCnwgICAgIHdoZW4gZmF1bHRpbmcgaW4gY29kZSBwYWdlcy4gSW4gdGhlc2Ug Y2FzZXMsIHRoZSBDUFUgaXMgbGlhYmxlIHRvCnwgICAgIHRha2UgZmF1bHQgb24gdGhlIG1pc3Np bmcgdHJhbnNsYXRpb24gYW55d2F5LgoKLi4gd2hhdCByZWFsbHkgbWF0dGVycyBpcyB3aGV0aGVy IHRoZSBDUFUgaGFkIHRoZSBvcHBvcHJ0dW5pdHkgdG8gZmV0Y2gKc29tZXRoaW5nIHN0YWxlOyB0 aGUgY29udGV4dCBzeW5jaHJvbml6YXRpb24gaXMgbmVjZXNzYXJ5IHRvIGRpc2NhcmQKdGhhdC4K CkJlYXIgaW4gbWluZCB0aGF0IGluIG1hbnkgY2FzZXMgd2hlcmUgdGhpcyBjb3VsZCBvY2N1ciBp biB0aGVvcnksIHdlCmRvbid0IGhpdCBpbiBwcmFjdGljZSBiZWNhdXNlIENQVXMgZG9uJ3QgaGFw cGVuIHRvIHByZWRpY3Qvc3BlY3VsYXRlIGFzCmFnZ3Jlc3NpdmVseSBhcyB0aGV5IGFyZSBwZXJt aXR0ZWQgdG8uIE9uIGFybS9hcm02NCBpdCdzIG9idmlvdXMgdGhhdAp0aGlzIGlzIGEgcHJvYmxl bSBiZWNhdXNlIHRoZSBkb2N1bWVudGF0aW9uIGNsZWFybHkgZGVmaW5lcyB0aGUKYm91bmRhcmll cyBvZiB3aGF0IGEgQ1BVIGlzIHBlcm1pdHRlZCB0byBkbywgd2hlcmVhcyBvbiBvdGhlcgphcmNo aXRlY3R1cmVzIGRvY3VlbnRhdGlvbiBpcyBub3QgbmVjZXNzYXJpbHkgYXMgY2xlYXIgd2hldGhl ciB0aGlzIGlzCnBlcm1pdGVkIG9yIHdoZXRoZXIgdGhlIGFyY2hpdGVjdHVyZSBtYW5kYXRlcyBh ZGRpdGlvbmFsIGd1YXJhbnRlZXMuCgo+IFdlIGNhbiBhbmQsIElNTywgc2hvdWxkIGRldmVsb3Ag YSBzYW5lIHdheSBmb3IgdXNlciBwcm9ncmFtcyB0bwo+IGluc3RhbGwgaW5zdHJ1Y3Rpb25zIGlu dG8gVk1BcywgZm9yIHNlY3VyaXR5LWNvbnNjaW91cyBzb2Z0d2FyZSB0bwo+IHZlcmlmeSB0aGVt IChieSBzcGxpdHRpbmcgdGhlIHJlYWQgYW5kIHdyaXRlIHNpZGVzPyksIGFuZCBmb3IgdGhlaXIK PiBjb25zdW1lcnMgdG8gZXhlY3V0ZSB0aGVtLCB3aXRob3V0IGtub3dpbmcgYW55IGFyY2ggZGV0 YWlscy4gIEFuZCBJCj4gdGhpbmsgdGhpcyBjYW4gYmUgZG9uZSB3aXRoIG5vIElQSXMgZXhjZXB0 IGZvciBwb3NzaWJsZSBUTEIgZmx1c2hpbmcKPiB3aGVuIG5lZWRlZCwgYXQgbGVhc3Qgb24gbW9z dCBhcmNoaXRlY3R1cmVzLiAgSXQgd291bGQgcmVxdWlyZSBhCj4gbm9udHJpdmlhbCBhbW91bnQg b2YgZGVzaWduIHdvcmssIGFuZCBpdCB3b3VsZCBub3QgcmVzZW1ibGUKPiBzeXNfY2FjaGVmbHVz aCgpIG9yIFNZTkNfQ09SRS4KCkknbSBub3Qgb3Bwb3NlZCB0byBhZGRpbmcgbmV3IGludGVyZmFj ZXMgZm9yIHN0dWZmIGxpa2UgdGhhdCwgYnV0IEkKZG9uJ3QgdGhpbmsgdGhhdCBtZW1iYXJyaWVy KFNZTkNfQ09SRSkgb3IgY2FjaGVmbHVzaCgyKSBhcmUgbmVjZXNzYXJpbHkKd3JvbmcgYXMtaXMu CgpUaGFua3MsCk1hcmsuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsCg==