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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 338B2C7619A for ; Wed, 12 Apr 2023 02:33:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:References:CC:To:Subject:From: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=W5d3+SJR4Rfrw+VYvb6iyAUXYGpFGBVGWK9QTw7EgC8=; b=ICLsc65VDe2Ob4 JlAH+lZeH3yMyxbTG6GlKA503nBScVIC3kHCy2koES+difqrUxdvEudZZscIyXVo1bwfywf0tK+Gr lM4DO9AaMxry4+sypXrvscAifpQZkTQ1qn4CZ1ab+M0XypLWwMOHtapthD8ZywrX4+nDSvh6qnv82 vKwKXsm79dgHCKYjelCa5T57ys4l59y0whNUy4vPq1XTHWmSG2IaUPxpt/qqkpyBQ5OouaDeKlhi+ AzYrrMfD2LLEQhFDt8DO8UjcoXoc9CQntKgPoygv/7Nyrxa0NjY0MS5wHCq2QLZu+SpC3/eEc5dwa EQz5AiGEpAm1E2+bGYuQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pmQHJ-001cNG-2U; Wed, 12 Apr 2023 02:32:09 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pmQHF-001cLD-1t for linux-arm-kernel@lists.infradead.org; Wed, 12 Apr 2023 02:32:08 +0000 Received: from kwepemm600017.china.huawei.com (unknown [172.30.72.56]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Px67h3pSXzSrTM; Wed, 12 Apr 2023 10:28:00 +0800 (CST) Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 12 Apr 2023 10:31:53 +0800 Message-ID: <88914aef-b73e-b8c1-1c06-5a424d8a8b57@huawei.com> Date: Wed, 12 Apr 2023 10:31:52 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 From: Tong Tiangen Subject: Re: [PATCH -next v8 4/4] arm64: add cow to machine check safe To: Catalin Marinas CC: Mark Rutland , James Morse , Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Robin Murphy , Dave Hansen , Will Deacon , Alexander Viro , , "H . Peter Anvin" , , , , Kefeng Wang , Guohanjun , Xie XiuQi References: <20221219120008.3818828-1-tongtiangen@huawei.com> <20221219120008.3818828-5-tongtiangen@huawei.com> In-Reply-To: X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230411_193205_970535_9D81E0B5 X-CRM114-Status: GOOD ( 25.73 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgrlnKggMjAyMy80LzEyIDA6NDUsIENhdGFsaW4gTWFyaW5hcyDlhpnpgZM6Cj4gT24gTW9uLCBE ZWMgMTksIDIwMjIgYXQgMTI6MDA6MDhQTSArMDAwMCwgVG9uZyBUaWFuZ2VuIHdyb3RlOgo+PiBB dCBwcmVzZW50LCBSZWNvdmVyIGZyb20gcG9pc29uIGNvbnN1bXB0aW9uIGZyb20gY29weS1vbi13 cml0ZSBoYXMgYmVlbgo+PiBzdXBwb3J0ZWRbMV0sIGFybTY0IHNob3VsZCBhbHNvIHN1cHBvcnQg dGhpcyBtZWNoYW5pc20uCj4+Cj4+IEFkZCBuZXcgaGVscGVyIGNvcHlfbWNfcGFnZSgpIHdoaWNo IHByb3ZpZGUgYSBwYWdlIGNvcHkgaW1wbGVtZW50YXRpb24gd2l0aAo+PiBtYWNoaW5lIGNoZWNr IHNhZmUuIEF0IHByZXNlbnQsIG9ubHkgdXNlZCBpbiBjb3cuIEluIHRoZSBmdXR1cmUsIHdlIGNh bgo+PiBleHBhbmQgbW9yZSBzY2VuZXMuIEFzIGxvbmcgYXMgdGhlIGNvbnNlcXVlbmNlcyBvZiBw YWdlIGNvcHkgZmFpbHVyZSBhcmUKPj4gbm90IGZhdGFsKGVnOiBvbmx5IGFmZmVjdCB1c2VyIHBy b2Nlc3MpLCB3ZSBjYW4gdXNlIHRoaXMgaGVscGVyLgo+Pgo+PiBUaGUgY29weV9tY19wYWdlKCkg aW4gY29weV9wYWdlX21jLlMgaXMgbGFyZ2VseSBib3Jyb3dzIGZyb20gY29weV9wYWdlKCkKPj4g aW4gY29weV9wYWdlLlMgYW5kIHRoZSBtYWluIGRpZmZlcmVuY2UgaXMgY29weV9tY19wYWdlKCkg YWRkIGV4dGFibGUgZW50cnkKPj4gdG8gZXZlcnkgbG9hZC9zdG9yZSBpbnNuIHRvIHN1cHBvcnQg bWFjaGluZSBjaGVjayBzYWZlLiBsYXJnZWx5IHRvIGtlZXAgdGhlCj4+IHBhdGNoIHNpbXBsZS4g SWYgbmVlZGVkIHRob3NlIG9wdGltaXphdGlvbnMgY2FuIGJlIGZvbGRlZCBpbi4KPj4KPj4gQWRk IG5ldyBleHRhYmxlIHR5cGUgRVhfVFlQRV9DT1BZX01DX1BBR0Ugd2hpY2ggdXNlZCBpbiBjb3B5 X21jX3BhZ2UoKS4KPj4KPj4gWzFdaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIyMTAz MTIwMTAyOS4xMDIxMjMtMS10b255Lmx1Y2tAaW50ZWwuY29tLwo+Pgo+PiBTaWduZWQtb2ZmLWJ5 OiBUb25nIFRpYW5nZW4gPHRvbmd0aWFuZ2VuQGh1YXdlaS5jb20+Cj4gCj4gVGhpcyBzZXJpZXMg bmVlZHMgcmViYXNpbmcgb250byBhIG5ld2VyIGtlcm5lbC4gU29tZSByYW5kb20gY29tbWVudHMK PiBiZWxvdy4KCk9LLCB2ZXJ5IHdpbGxpbmcgdG8gZG8gaXQgOikKCj4gCj4+IGRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2xpYi9jb3B5X21jX3BhZ2UuUyBiL2FyY2gvYXJtNjQvbGliL2NvcHlfbWNf cGFnZS5TCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMDNk NjU3YTE4MmY2Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvYXJjaC9hcm02NC9saWIvY29weV9t Y19wYWdlLlMKPj4gQEAgLTAsMCArMSw4MiBAQAo+IFsuLi5dCj4+ICtTWU1fRlVOQ19TVEFSVChf X3BpX2NvcHlfbWNfcGFnZSkKPj4gK2FsdGVybmF0aXZlX2lmIEFSTTY0X0hBU19OT19IV19QUkVG RVRDSAo+PiArCS8vIFByZWZldGNoIHRocmVlIGNhY2hlIGxpbmVzIGFoZWFkLgo+PiArCXByZm0J cGxkbDFzdHJtLCBbeDEsICMxMjhdCj4+ICsJcHJmbQlwbGRsMXN0cm0sIFt4MSwgIzI1Nl0KPj4g KwlwcmZtCXBsZGwxc3RybSwgW3gxLCAjMzg0XQo+PiArYWx0ZXJuYXRpdmVfZWxzZV9ub3BfZW5k aWYKPj4gKwo+PiArQ1BZX01DKDk5OThmLCBsZHAJeDIsIHgzLCBbeDFdKQo+PiArQ1BZX01DKDk5 OThmLCBsZHAJeDQsIHg1LCBbeDEsICMxNl0pCj4+ICtDUFlfTUMoOTk5OGYsIGxkcAl4NiwgeDcs IFt4MSwgIzMyXSkKPj4gK0NQWV9NQyg5OTk4ZiwgbGRwCXg4LCB4OSwgW3gxLCAjNDhdKQo+PiAr Q1BZX01DKDk5OThmLCBsZHAJeDEwLCB4MTEsIFt4MSwgIzY0XSkKPj4gK0NQWV9NQyg5OTk4Ziwg bGRwCXgxMiwgeDEzLCBbeDEsICM4MF0pCj4+ICtDUFlfTUMoOTk5OGYsIGxkcAl4MTQsIHgxNSwg W3gxLCAjOTZdKQo+PiArQ1BZX01DKDk5OThmLCBsZHAJeDE2LCB4MTcsIFt4MSwgIzExMl0pCj4g Wy4uLl0KPiBbLi4uXQo+PiArOTk5ODoJcmV0Cj4gCj4gV2hhdCBJIGRvbid0IHVuZGVyc3RhbmQs IGlzIHRoZXJlIGFueSBlcnJvciByZXR1cm5lZCBoZXJlIG9yIHRoZSBieXRlcwo+IG5vdCBjb3Bp ZWQ/IEkgY2FuIHNlZSBpdHMgcmV0dXJuIHZhbHVlIGlzIG5ldmVyIHVzZWQgaW4gdGhpcyBzZXJp ZXMuCj4gCj4gQWxzbywgZG8gd2UgbmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGZhdWx0IG9u IHRoZSBzb3VyY2Ugb3IgdGhlCj4gZGVzdGluYXRpb24/CgpPaCwgbWlzc2luZyBpdCwgVGhpcyBz aG91bGQgcmVydW4gYnl0ZXMgbm90IGNvcGllZC4Kd2lsbCBiZSBmaXhlZCBuZXh0IHZlcnNpb24u Cgo+IAo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9saWIvbXRlLlMgYi9hcmNoL2FybTY0L2xp Yi9tdGUuUwo+PiBpbmRleCA1MDE4YWMwM2I2YmYuLmJmNGRkODYxYzQxYyAxMDA2NDQKPj4gLS0t IGEvYXJjaC9hcm02NC9saWIvbXRlLlMKPj4gKysrIGIvYXJjaC9hcm02NC9saWIvbXRlLlMKPj4g QEAgLTgwLDYgKzgwLDI1IEBAIFNZTV9GVU5DX1NUQVJUKG10ZV9jb3B5X3BhZ2VfdGFncykKPj4g ICAJcmV0Cj4+ICAgU1lNX0ZVTkNfRU5EKG10ZV9jb3B5X3BhZ2VfdGFncykKPj4gICAKPj4gKy8q Cj4+ICsgKiBDb3B5IHRoZSB0YWdzIGZyb20gdGhlIHNvdXJjZSBwYWdlIHRvIHRoZSBkZXN0aW5h dGlvbiBvbmUgd2lodCBtYWNoaW5lIGNoZWNrIHNhZmUKPj4gKyAqICAgeDAgLSBhZGRyZXNzIG9m IHRoZSBkZXN0aW5hdGlvbiBwYWdlCj4+ICsgKiAgIHgxIC0gYWRkcmVzcyBvZiB0aGUgc291cmNl IHBhZ2UKPj4gKyAqLwo+PiArU1lNX0ZVTkNfU1RBUlQobXRlX2NvcHlfbWNfcGFnZV90YWdzKQo+ PiArCW1vdgl4MiwgeDAKPj4gKwltb3YJeDMsIHgxCj4+ICsJbXVsdGl0YWdfdHJhbnNmZXJfc2l6 ZSB4NSwgeDYKPj4gKzE6Cj4+ICtDUFlfTUMoMmYsIGxkZ20JeDQsIFt4M10pCj4+ICsJc3RnbQl4 NCwgW3gyXQo+PiArCWFkZAl4MiwgeDIsIHg1Cj4+ICsJYWRkCXgzLCB4MywgeDUKPj4gKwl0c3QJ eDIsICMoUEFHRV9TSVpFIC0gMSkKPj4gKwliLm5lCTFiCj4+ICsyOglyZXQKPj4gK1NZTV9GVU5D X0VORChtdGVfY29weV9tY19wYWdlX3RhZ3MpCj4gCj4gV2hpbGUgdGhlIGRhdGEgY29weSBhYm92 ZSBoYW5kbGVzIGVycm9ycyBvbiBib3RoIHNvdXJjZSBhbmQgZGVzdGluYXRpb24sCj4gaGVyZSB5 b3Ugc2tpcCB0aGUgZGVzdGluYXRpb24uIEFueSByZWFzb24/CgpPaCwgbXkgZmF1bHQsIG1pc3Mg dGhlIGRlc3RpbmF0aW9uLgoKCj4gCj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L21tL2NvcHlw YWdlLmMgYi9hcmNoL2FybTY0L21tL2NvcHlwYWdlLmMKPj4gaW5kZXggOGRkNWE4ZmU2NGI0Li4w MDVlZTJhM2NiNGUgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvbW0vY29weXBhZ2UuYwo+PiAr KysgYi9hcmNoL2FybTY0L21tL2NvcHlwYWdlLmMKPiBbLi4uXQo+PiArI2lmZGVmIENPTkZJR19B UkNIX0hBU19DT1BZX01DCj4+ICt2b2lkIGNvcHlfbWNfaGlnaHBhZ2Uoc3RydWN0IHBhZ2UgKnRv LCBzdHJ1Y3QgcGFnZSAqZnJvbSkKPj4gK3sKPj4gKwl2b2lkICprdG8gPSBwYWdlX2FkZHJlc3Mo dG8pOwo+PiArCXZvaWQgKmtmcm9tID0gcGFnZV9hZGRyZXNzKGZyb20pOwo+PiArCj4+ICsJY29w eV9tY19wYWdlKGt0bywga2Zyb20pOwo+PiArCWRvX210ZSh0bywgZnJvbSwga3RvLCBrZnJvbSwg dHJ1ZSk7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKGNvcHlfbWNfaGlnaHBhZ2UpOwo+PiArCj4+ ICtpbnQgY29weV9tY191c2VyX2hpZ2hwYWdlKHN0cnVjdCBwYWdlICp0bywgc3RydWN0IHBhZ2Ug KmZyb20sCj4+ICsJCQl1bnNpZ25lZCBsb25nIHZhZGRyLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSkKPj4gK3sKPj4gKwljb3B5X21jX2hpZ2hwYWdlKHRvLCBmcm9tKTsKPj4gKwlmbHVzaF9k Y2FjaGVfcGFnZSh0byk7Cj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4gCj4gVGhpcyBvbmUgYWx3YXlz IHJldHVybnMgMC4gRG9lcyBpdCBhY3R1YWxseSBjYXRjaCBhbnkgbWVtb3J5IGZhaWx1cmVzPwoK WWVzLCB3aWxsIGJlIGZpeGVkIG5leHQgdmVyc2lvbi4KCj4gCj4+ICtFWFBPUlRfU1lNQk9MX0dQ TChjb3B5X21jX3VzZXJfaGlnaHBhZ2UpOwo+PiArI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9hcmNo L2FybTY0L21tL2V4dGFibGUuYyBiL2FyY2gvYXJtNjQvbW0vZXh0YWJsZS5jCj4+IGluZGV4IDI4 ZWMzNWUzZDIxMC4uMGZkYWIxOGYyZjA3IDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L21tL2V4 dGFibGUuYwo+PiArKysgYi9hcmNoL2FybTY0L21tL2V4dGFibGUuYwo+PiBAQCAtMTYsNiArMTYs MTMgQEAgZ2V0X2V4X2ZpeHVwKGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmV4 KQo+PiAgIAlyZXR1cm4gKCh1bnNpZ25lZCBsb25nKSZleC0+Zml4dXAgKyBleC0+Zml4dXApOwo+ PiAgIH0KPj4gICAKPj4gK3N0YXRpYyBib29sIGV4X2hhbmRsZXJfZml4dXAoY29uc3Qgc3RydWN0 IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZXgsCj4+ICsJCQkgICAgIHN0cnVjdCBwdF9yZWdzICpy ZWdzKQo+PiArewo+PiArCXJlZ3MtPnBjID0gZ2V0X2V4X2ZpeHVwKGV4KTsKPj4gKwlyZXR1cm4g dHJ1ZTsKPj4gK30KPiAKPiBTaG91bGQgd2UgcHJlcGFyZSBzb21lIGVycm9yIGhlcmUgbGlrZSAt RUZBVUxUPyBUaGF0J3MgZG9uZSBpbgo+IGV4X2hhbmRsZXJfdWFjY2Vzc19lcnJfemVybygpLgoK WWVzLCBpdCBzaG91bGQgYmUgZG9uZSBoZXJlIGFuZCB3aWxsIGJlIGZpeGVkIG5leHQgdmVyc2lv bi4KClRoYW5rIHlvdSBmb3IgdGhlc2UgZ3JlYXQgc3VnZ2VzdGlvbnMuClRvbmcuCgo+IAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo= 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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFC46C7619A for ; Wed, 12 Apr 2023 02:32:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B266900002; Tue, 11 Apr 2023 22:32:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 663336B0075; Tue, 11 Apr 2023 22:32:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 55140900002; Tue, 11 Apr 2023 22:32:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 420F36B0074 for ; Tue, 11 Apr 2023 22:32:09 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0F0FBA0D88 for ; Wed, 12 Apr 2023 02:32:09 +0000 (UTC) X-FDA: 80671164378.15.E97992E Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf07.hostedemail.com (Postfix) with ESMTP id 8779740005 for ; Wed, 12 Apr 2023 02:32:03 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; spf=pass (imf07.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681266726; a=rsa-sha256; cv=none; b=bBDO6Hl8wb3RUHJRNxTyuG329atvEVriQ53eWmIqcV9Q7Jg7lqe70Batgjn63G8c9uT2S7 sT8EVHbsLfJuH+mAODuxIvX6vBYWTVZewGkGlTGZWXKYk7tSymJ0Uqe/fRtNV7UjXv5pVS xZlOcB/JhrZpMmK+7EUNmORh8vIUCmc= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; spf=pass (imf07.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681266726; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4l+u+tSSSvHaCpTl6QdxQcd9r6NZrcWa0MSjUzP0Z1c=; b=a8yLw6n92sIe1KIbtGZAO0X9GhdAMauVjBjoAMBGcw2J8Z9aNr792hQ0ujI6I/1bNp+vC1 rU6pL2JqjKDOQSKUZqFjvFT2nrnCawYa3M3kpjZ85CsQqtvsLT/l3d5+iEwcdqy77O/LZU rqQ7ecRroYX0WhSo9U5xeIoU+uLjd0s= Received: from kwepemm600017.china.huawei.com (unknown [172.30.72.56]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Px67h3pSXzSrTM; Wed, 12 Apr 2023 10:28:00 +0800 (CST) Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 12 Apr 2023 10:31:53 +0800 Message-ID: <88914aef-b73e-b8c1-1c06-5a424d8a8b57@huawei.com> Date: Wed, 12 Apr 2023 10:31:52 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 From: Tong Tiangen Subject: Re: [PATCH -next v8 4/4] arm64: add cow to machine check safe To: Catalin Marinas CC: Mark Rutland , James Morse , Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Robin Murphy , Dave Hansen , Will Deacon , Alexander Viro , , "H . Peter Anvin" , , , , Kefeng Wang , Guohanjun , Xie XiuQi References: <20221219120008.3818828-1-tongtiangen@huawei.com> <20221219120008.3818828-5-tongtiangen@huawei.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Queue-Id: 8779740005 X-Rspamd-Server: rspam01 X-Stat-Signature: 3kybo9cdikcxpodiqgepr7eqxpwn9mm8 X-HE-Tag: 1681266723-7206 X-HE-Meta: U2FsdGVkX1/z7hx/SQbRmHFF0Be+Y1DXsr3rGHpDlmxv4t0JvfgasfUvPswZ1mHAkfdUx14kv73Yu97r5wobBs9M0NMK6/zF7Yosk3mHb0JpDJ5OHBWKQU07N9CboDlyxbpqLHSBKXJIBxlbDlHziXrv61xPIPpXfL2eegco6Sar1P6hHszQj61d1OhHNAcLQg29oSMyThEcZMabdx1IXUuPrgUiLaO9MWxFyfRU2Fn9r6P9G32J/YnqvZnyebzEgGZ+0n/geSbUyZR5tdshtrGgR/C7wA14+DJZLOupbI1Bwk1CcoF5BlxH2SoHL85GkcDO1RYecJIjwsDneu+YaPe1taaOuUF+95Et/Cze9y1M04t3aLXkwOh+0LQdxy8ob3vqFBI1YVMU4FNwUsS0yO+v/sjcmcZyBuZsObnbmVfcMKI+Q2pvh2xIJcqsP3I5y6eESVvnfIT5bMI57GOB59Paz+XJ6kGBzUYj1lDj20azbeTtk9OdlUuPtAR0UsolRFipVW+6xxX7aFrzLEY3qf1ax4HOEjxIJiiNTeUOEp2QVrFZpbAE40s8osyOwOBvEdTpvUNn4UKpI7WuWRZQFOr+VzqUm9zGxoDxu/Og+JJMDbUViC7BgTi6rIlHkN9FfjVLJ6R90haVH1QdvVWDy7O7wNwfcLSaaUMRlhQjzXl+EoKuSWiCrFlOvKkjk4UiGqG7jmjbUXQUmqWQmGQRytNBNEa5lJuE7OM2PP5JClvQ75XBHak+b2dKcZRc0m2nyhCOZ2jaCKzxFsRmGkeSMpHy6Le7ox4y7lPVaxttXRm4ws2nmlqE2/F1jZW8T+nljsAn88ftSkl6XfTentS5bU9GgttKDm6ZECrb/3naxNlzMbbRyN2TgN3h4wJN/iu7qWHSao4DcVhygMj25XBHneYKas4ZH+4MckLZtSDYm1opYw6qKBGHBzX2lQI/hYYgbF0yi/ykqf/2/x1bqT4 KGhOGbmT d3jJf1VAEWC9lMgDDb0028hIiQwA7Wf4zPcxFhDpkl3W2Cm+ErU6L65rhmWOmaXQX7OuThIFCNDCGSkKNUeZrLowo1ceghRonKmznJhzUYbK0YpMxnYXGJasEFRbYECWAd2QDJERc6v1t+rAdRujMmadV5y6TzI3gFM0H7BWZzZLHjyG4KPvLuudyIyU6KVvZyfOpLoHl90CHAdZgAsxgR01Jhuwjrm+YWX8zm+MkRNk/6YsA/WlIo8LMRRQocRlgjIUu X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 在 2023/4/12 0:45, Catalin Marinas 写道: > On Mon, Dec 19, 2022 at 12:00:08PM +0000, Tong Tiangen wrote: >> At present, Recover from poison consumption from copy-on-write has been >> supported[1], arm64 should also support this mechanism. >> >> Add new helper copy_mc_page() which provide a page copy implementation with >> machine check safe. At present, only used in cow. In the future, we can >> expand more scenes. As long as the consequences of page copy failure are >> not fatal(eg: only affect user process), we can use this helper. >> >> The copy_mc_page() in copy_page_mc.S is largely borrows from copy_page() >> in copy_page.S and the main difference is copy_mc_page() add extable entry >> to every load/store insn to support machine check safe. largely to keep the >> patch simple. If needed those optimizations can be folded in. >> >> Add new extable type EX_TYPE_COPY_MC_PAGE which used in copy_mc_page(). >> >> [1]https://lore.kernel.org/lkml/20221031201029.102123-1-tony.luck@intel.com/ >> >> Signed-off-by: Tong Tiangen > > This series needs rebasing onto a newer kernel. Some random comments > below. OK, very willing to do it :) > >> diff --git a/arch/arm64/lib/copy_mc_page.S b/arch/arm64/lib/copy_mc_page.S >> new file mode 100644 >> index 000000000000..03d657a182f6 >> --- /dev/null >> +++ b/arch/arm64/lib/copy_mc_page.S >> @@ -0,0 +1,82 @@ > [...] >> +SYM_FUNC_START(__pi_copy_mc_page) >> +alternative_if ARM64_HAS_NO_HW_PREFETCH >> + // Prefetch three cache lines ahead. >> + prfm pldl1strm, [x1, #128] >> + prfm pldl1strm, [x1, #256] >> + prfm pldl1strm, [x1, #384] >> +alternative_else_nop_endif >> + >> +CPY_MC(9998f, ldp x2, x3, [x1]) >> +CPY_MC(9998f, ldp x4, x5, [x1, #16]) >> +CPY_MC(9998f, ldp x6, x7, [x1, #32]) >> +CPY_MC(9998f, ldp x8, x9, [x1, #48]) >> +CPY_MC(9998f, ldp x10, x11, [x1, #64]) >> +CPY_MC(9998f, ldp x12, x13, [x1, #80]) >> +CPY_MC(9998f, ldp x14, x15, [x1, #96]) >> +CPY_MC(9998f, ldp x16, x17, [x1, #112]) > [...] > [...] >> +9998: ret > > What I don't understand, is there any error returned here or the bytes > not copied? I can see its return value is never used in this series. > > Also, do we need to distinguish between fault on the source or the > destination? Oh, missing it, This should rerun bytes not copied. will be fixed next version. > >> diff --git a/arch/arm64/lib/mte.S b/arch/arm64/lib/mte.S >> index 5018ac03b6bf..bf4dd861c41c 100644 >> --- a/arch/arm64/lib/mte.S >> +++ b/arch/arm64/lib/mte.S >> @@ -80,6 +80,25 @@ SYM_FUNC_START(mte_copy_page_tags) >> ret >> SYM_FUNC_END(mte_copy_page_tags) >> >> +/* >> + * Copy the tags from the source page to the destination one wiht machine check safe >> + * x0 - address of the destination page >> + * x1 - address of the source page >> + */ >> +SYM_FUNC_START(mte_copy_mc_page_tags) >> + mov x2, x0 >> + mov x3, x1 >> + multitag_transfer_size x5, x6 >> +1: >> +CPY_MC(2f, ldgm x4, [x3]) >> + stgm x4, [x2] >> + add x2, x2, x5 >> + add x3, x3, x5 >> + tst x2, #(PAGE_SIZE - 1) >> + b.ne 1b >> +2: ret >> +SYM_FUNC_END(mte_copy_mc_page_tags) > > While the data copy above handles errors on both source and destination, > here you skip the destination. Any reason? Oh, my fault, miss the destination. > >> diff --git a/arch/arm64/mm/copypage.c b/arch/arm64/mm/copypage.c >> index 8dd5a8fe64b4..005ee2a3cb4e 100644 >> --- a/arch/arm64/mm/copypage.c >> +++ b/arch/arm64/mm/copypage.c > [...] >> +#ifdef CONFIG_ARCH_HAS_COPY_MC >> +void copy_mc_highpage(struct page *to, struct page *from) >> +{ >> + void *kto = page_address(to); >> + void *kfrom = page_address(from); >> + >> + copy_mc_page(kto, kfrom); >> + do_mte(to, from, kto, kfrom, true); >> +} >> +EXPORT_SYMBOL(copy_mc_highpage); >> + >> +int copy_mc_user_highpage(struct page *to, struct page *from, >> + unsigned long vaddr, struct vm_area_struct *vma) >> +{ >> + copy_mc_highpage(to, from); >> + flush_dcache_page(to); >> + return 0; >> +} > > This one always returns 0. Does it actually catch any memory failures? Yes, will be fixed next version. > >> +EXPORT_SYMBOL_GPL(copy_mc_user_highpage); >> +#endif >> diff --git a/arch/arm64/mm/extable.c b/arch/arm64/mm/extable.c >> index 28ec35e3d210..0fdab18f2f07 100644 >> --- a/arch/arm64/mm/extable.c >> +++ b/arch/arm64/mm/extable.c >> @@ -16,6 +16,13 @@ get_ex_fixup(const struct exception_table_entry *ex) >> return ((unsigned long)&ex->fixup + ex->fixup); >> } >> >> +static bool ex_handler_fixup(const struct exception_table_entry *ex, >> + struct pt_regs *regs) >> +{ >> + regs->pc = get_ex_fixup(ex); >> + return true; >> +} > > Should we prepare some error here like -EFAULT? That's done in > ex_handler_uaccess_err_zero(). Yes, it should be done here and will be fixed next version. Thank you for these great suggestions. Tong. >