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 38850C25B48 for ; Thu, 26 Oct 2023 12:33:22 +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:From:References:Cc:To:Subject: 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=BBTZnM6oiLBv8RAV9d4wGsD3lf7mmMXGnAe3sAC+E34=; b=Txr1wayUTAJVI4 /ZJj8VUF3BrtsRm4jaPu6iQkjzwwnYZ4dyO4M0DtxzeC6gE6GNY91zUEwRUHA4kMBo196CXjjs/ih HMPxDh4/CNVz2m/uXWAhXjtDbPg1WaHNATKxy/b5nLAJE2K4GE9LKkShl7NxF+OQBjEcVj3I0c8TV PRbxOS0buczVz3ovmpWhnfV1YZK/+2hmMsR+KASP592voOTIp7wGaq2twGUdL0Zowbm4r262f3TIc KsUAd6bnYSbPCb78+8acSZ64rai88SmHnEB5nuxi3/HOhj2/THRQ5ex1b6uz6Fv0Jh+pCv88azfef Ws6JrwFQFQT2qyIP5IMw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvzXb-00EReY-2Q; Thu, 26 Oct 2023 12:32:47 +0000 Received: from out30-98.freemail.mail.aliyun.com ([115.124.30.98]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qvzXV-00ERcp-1E for linux-arm-kernel@lists.infradead.org; Thu, 26 Oct 2023 12:32:45 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0VuxqP9._1698323546; Received: from 30.97.48.63(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VuxqP9._1698323546) by smtp.aliyun-inc.com; Thu, 26 Oct 2023 20:32:27 +0800 Message-ID: <37a3e0d0-329f-576f-2498-986ff260c07a@linux.alibaba.com> Date: Thu, 26 Oct 2023 20:32:42 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] arm64: mm: drop tlb flush operation when clearing the access bit To: Anshuman Khandual , Barry Song <21cnbao@gmail.com> Cc: catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, v-songbaohua@oppo.com, yuzhao@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <2f55f62b-cae2-4eee-8572-1b662a170880@arm.com> From: Baolin Wang In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231026_053241_709330_D7E6D4CF X-CRM114-Status: GOOD ( 28.53 ) 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 CgpPbiAxMC8yNi8yMDIzIDI6MDEgUE0sIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+IAo+IAo+ IE9uIDEwLzI2LzIzIDExOjI0LCBCYXJyeSBTb25nIHdyb3RlOgo+PiBPbiBUaHUsIE9jdCAyNiwg MjAyMyBhdCAxMjo1NeKAr1BNIEFuc2h1bWFuIEtoYW5kdWFsCj4+IDxhbnNodW1hbi5raGFuZHVh bEBhcm0uY29tPiB3cm90ZToKPj4+Cj4+Pgo+Pj4KPj4+IE9uIDEwLzI0LzIzIDE4OjI2LCBCYW9s aW4gV2FuZyB3cm90ZToKPj4+PiBOb3cgcHRlcF9jbGVhcl9mbHVzaF95b3VuZygpIGlzIG9ubHkg Y2FsbGVkIGJ5IGZvbGlvX3JlZmVyZW5jZWQoKSB0bwo+Pj4+IGNoZWNrIGlmIHRoZSBmb2xpbyB3 YXMgcmVmZXJlbmNlZCwgYW5kIG5vdyBpdCB3aWxsIGNhbGwgYSB0bGIgZmx1c2ggb24KPj4+PiBB Uk02NCBhcmNoaXRlY3R1cmUuIEhvd2V2ZXIgdGhlIHRsYiBmbHVzaCBjYW4gYmUgZXhwZW5zaXZl IG9uIEFSTTY0Cj4+Pj4gc2VydmVycywgZXNwZWNpYWxseSBmb3IgdGhlIHN5c3RlbXMgd2l0aCBh IGxhcmdlIENQVSBudW1iZXJzLgo+Pj4KPj4+IFRMQiBmbHVzaCB3b3VsZCBiZSBleHBlbnNpdmUg b24gKmFueSogcGxhdGZvcm0gd2l0aCBsYXJnZSBDUFUgbnVtYmVycyA/CgpQZXJoYXBzIHllcywg YnV0IGRpZCBub3QgbWVhc3VyZSBpdCBvbiBvdGhlciBwbGF0Zm9ybXMuCgo+Pj4+IFNpbWlsYXIg dG8gdGhlIHg4NiBhcmNoaXRlY3R1cmUsIGJlbG93IGNvbW1lbnRzIGFsc28gYXBwbHkgZXF1YWxs eSB0bwo+Pj4+IEFSTTY0IGFyY2hpdGVjdHVyZS4gU28gd2UgY2FuIGRyb3AgdGhlIHRsYiBmbHVz aCBvcGVyYXRpb24gaW4KPj4+PiBwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKCkgb24gQVJNNjQgYXJj aGl0ZWN0dXJlIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlLgo+Pj4+ICIKPj4+PiAvKiBDbGVh cmluZyB0aGUgYWNjZXNzZWQgYml0IHdpdGhvdXQgYSBUTEIgZmx1c2gKPj4+PiAgICogZG9lc24n dCBjYXVzZSBkYXRhIGNvcnJ1cHRpb24uIFsgSXQgY291bGQgY2F1c2UgaW5jb3JyZWN0Cj4+Pj4g ICAqIHBhZ2UgYWdpbmcgYW5kIHRoZSAobWlzdGFrZW4pIHJlY2xhaW0gb2YgaG90IHBhZ2VzLCBi dXQgdGhlCj4+Pj4gICAqIGNoYW5jZSBvZiB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5IGxvdy4g XQo+Pj4+ICAgKgo+Pj4+ICAgKiBTbyBhcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBkb24n dCBmbHVzaCB0aGUgVExCIHdoZW4KPj4+PiAgICogY2xlYXJpbmcgdGhlIGFjY2Vzc2VkIGJpdCwg aXQgd2lsbCBldmVudHVhbGx5IGJlIGZsdXNoZWQgYnkKPj4+PiAgICogYSBjb250ZXh0IHN3aXRj aCBvciBhIFZNIG9wZXJhdGlvbiBhbnl3YXkuIFsgSW4gdGhlIHJhcmUKPj4+PiAgICogZXZlbnQg b2YgaXQgbm90IGdldHRpbmcgZmx1c2hlZCBmb3IgYSBsb25nIHRpbWUgdGhlIGRlbGF5Cj4+Pj4g ICAqIHNob3VsZG4ndCByZWFsbHkgbWF0dGVyIGJlY2F1c2UgdGhlcmUncyBubyByZWFsIG1lbW9y eQo+Pj4+ICAgKiBwcmVzc3VyZSBmb3Igc3dhcG91dCB0byByZWFjdCB0by4gXQo+Pj4+ICAgKi8K Pj4+Cj4+PiBJZiBhbHdheXMgdHJ1ZSwgdGhpcyBzb3VuZHMgZ2VuZXJpYyBlbm91Z2ggZm9yIGFs bCBwbGF0Zm9ybXMsIHdoeSBvbmx5Cj4+PiB4ODYgYW5kIGFybTY0ID8KCkkgYW0gbm90IHN1cmUg dGhpcyBpcyBhbHdheXMgdHJ1ZSBmb3IgZXZlcnkgYXJjaGl0ZWN0dXJlcy4KCj4+Pj4gIgo+Pj4+ IFJ1bm5pbmcgdGhlIHRocHNjYWxlIHRvIHNob3cgc29tZSBvYnZpb3VzIGltcHJvdmVtZW50cyBm b3IgY29tcGFjdGlvbgo+Pj4+IGxhdGVuY3kgd2l0aCB0aGlzIHBhdGNoOgo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJhc2UgICAgICAgICAgICAgICAgICAgcGF0Y2hlZAo+Pj4+ IEFtZWFuICAgICBmYXVsdC1ib3RoLTEgICAgICAxMDkzLjE5ICggICAwLjAwJSkgICAgIDEwODQu NTcgKiAgIDAuNzklKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTMgICAgICAyNTY2LjIyICgg ICAwLjAwJSkgICAgIDIyMjguNDUgKiAgMTMuMTYlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3Ro LTUgICAgICAzNTkxLjIyICggICAwLjAwJSkgICAgIDMxNDYuNzMgKiAgMTIuMzglKgo+Pj4+IEFt ZWFuICAgICBmYXVsdC1ib3RoLTcgICAgICA0MTU3LjI2ICggICAwLjAwJSkgICAgIDQxMTMuNjcg KiAgIDEuMDUlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTEyICAgICA2MTg0Ljc5ICggICAw LjAwJSkgICAgIDUyMTguNzAgKiAgMTUuNjIlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTE4 ICAgICA5MTAzLjcwICggICAwLjAwJSkgICAgIDc3MzkuNzEgKiAgMTQuOTglKgo+Pj4+IEFtZWFu ICAgICBmYXVsdC1ib3RoLTI0ICAgIDEyMzQxLjczICggICAwLjAwJSkgICAgMTA2ODQuMjMgKiAg MTMuNDMlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTMwICAgIDE1NTE5LjAwICggICAwLjAw JSkgICAgMTM2OTUuMTQgKiAgMTEuNzUlKgo+Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTMyICAg IDE2MTg5LjE1ICggICAwLjAwJSkgICAgMTQzNjUuNzMgKiAgMTEuMjYlKgo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgIGJhc2UgICAgICAgcGF0Y2hlZAo+Pj4+IER1cmF0aW9uIFVzZXIgICAg ICAgICAxNjcuNzggICAgICAxNjEuMDMKPj4+PiBEdXJhdGlvbiBTeXN0ZW0gICAgICAxODM2LjY2 ICAgICAxNjczLjAxCj4+Pj4gRHVyYXRpb24gRWxhcHNlZCAgICAgMjA3NC41OCAgICAgMjA1OS43 NQo+Pj4KPj4+IENvdWxkIHlvdSBwbGVhc2UgcG9pbnQgdG8gdGhlIHRlc3QgcmVwbyB5b3UgYXJl IHJ1bm5pbmcgPwoKVGhlIHRlc3QgaXMgYmFzZWQgb24gdjYuNSBrZXJuZWwuCgo+Pj4+IEJhcnJ5 IFNvbmcgc3VibWl0dGVkIGEgc2ltaWxhciBwYXRjaCBbMV0gYmVmb3JlLCB0aGF0IHJlcGxhY2Vz IHRoZQo+Pj4+IHB0ZXBfY2xlYXJfZmx1c2hfeW91bmdfbm90aWZ5KCkgd2l0aCBwdGVwX2NsZWFy X3lvdW5nX25vdGlmeSgpIGluCj4+Pj4gZm9saW9fcmVmZXJlbmNlZF9vbmUoKS4gSG93ZXZlciwg SSdtIG5vdCBzdXJlIGlmIHJlbW92aW5nIHRoZSB0bGIgZmx1c2gKPj4+PiBvcGVyYXRpb24gaXMg YXBwbGljYWJsZSB0byBldmVyeSBhcmNoaXRlY3R1cmUgaW4ga2VybmVsLCBzbyBkcm9wcGluZwo+ Pj4+IHRoZSB0bGIgZmx1c2ggZm9yIEFSTTY0IHNlZW1zIGEgc2Vuc2libGUgY2hhbmdlLgo+Pj4K Pj4+IFRoZSByZWFzb25pbmcgcHJvdmlkZWQgaGVyZSBzb3VuZHMgZ2VuZXJpYyB3aGVuIHRydWUs IGhlbmNlIHRoZXJlIHNlZW1zCj4+PiB0byBiZSBubyBqdXN0aWZpY2F0aW9uIHRvIGtlZXAgaXQg bGltaXRlZCBqdXN0IGZvciBhcm02NCBhbmQgeDg2LiBBbHNvCgpSaWdodCwgYnV0IEkgY2FuIG5v dCBlbnN1cmUgaWYgdGhpcyB3aWxsIGJyZWFrIG90aGVyIGFyY2hpdGVjdHVyZXMuCgo+Pj4gd2hh dCBhYm91dCBwbWRwX2NsZWFyX2ZsdXNoX3lvdW5nX25vdGlmeSgpIHdoZW4gVEhQIGlzIGVuYWJs ZWQuIFNob3VsZAo+Pj4gdGhhdCBhbHNvIG5vdCBkbyBhIFRMQiBmbHVzaCBhZnRlciBjbGVhcmlu ZyBhY2Nlc3MgYml0ID8gQWx0aG91Z2ggYXJtNjQKClllcywgSSB0aGluayBzby4KCj4+PiBkb2Vz IG5vdCBlbmFibGUgX19IQVZFX0FSQ0hfUE1EUF9DTEVBUl9ZT1VOR19GTFVTSCwgcmF0aGVyIGRl cGVuZHMgb24KPj4+IHRoZSBnZW5lcmljIHBtZHBfY2xlYXJfZmx1c2hfeW91bmcoKSB3aGljaCBh bHNvIGRvZXMgYSBUTEIgZmx1c2ggdmlhCj4+PiBmbHVzaF9wbWRfdGxiX3JhbmdlKCkgd2hpbGUg Y2xlYXJpbmcgdGhlIGFjY2VzcyBiaXQuCj4+Pgo+Pj4+Cj4+Pj4gTm90ZTogSSBhbSBva2F5IGZv ciBib3RoIGFwcHJvYWNoLCBpZiBzb21lb25lIGNhbiBoZWxwIHRvIGVuc3VyZSB0aGF0Cj4+Pj4g YWxsIGFyY2hpdGVjdHVyZXMgZG8gbm90IG5lZWQgdGhlIHRsYiBmbHVzaCB3aGVuIGNsZWFyaW5n IHRoZSBhY2Nlc3NlZAo+Pj4+IGJpdCwgdGhlbiBJIGFsc28gdGhpbmsgQmFycnkncyBwYXRjaCBp cyBiZXR0ZXIgKGhvcGUgQmFycnkgY2FuIHJlc2VuZAo+Pj4+IGhpcyBwYXRjaCkuCj4+Pgo+Pj4g VGhpcyBwYXJhZ3JhcGggYmVsb25ncyBhZnRlciB0aGUgJy0tLS0nIGJlbG93IGFuZCBub3QgcGFy dCBvZiB0aGUgY29tbWl0Cj4+PiBtZXNzYWdlLgoKT0suCgo+Pj4+IFsxXSBodHRwczovL2xvcmUu a2VybmVsLm9yZy9sa21sLzIwMjIwNjE3MDcwNTU1LjM0NDM2OC0xLTIxY25iYW9AZ21haWwuY29t Lwo+Pj4+IFNpZ25lZC1vZmYtYnk6IEJhb2xpbiBXYW5nIDxiYW9saW4ud2FuZ0BsaW51eC5hbGli YWJhLmNvbT4KPj4+PiAtLS0KPj4+PiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5o IHwgMzEgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+Pj4+ICAgMSBmaWxlIGNoYW5n ZWQsIDE2IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIGIvYXJjaC9hcm02NC9pbmNsdWRl L2FzbS9wZ3RhYmxlLmgKPj4+PiBpbmRleCAwYmQxOGRlOWZkOTcuLjI5NzlkNzk2YmE5ZCAxMDA2 NDQKPj4+PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+Pj4+ICsrKyBi L2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4+Pj4gQEAgLTkwNSwyMSArOTA1LDIy IEBAIHN0YXRpYyBpbmxpbmUgaW50IHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCj4+Pj4gICBzdGF0aWMgaW5saW5lIGludCBwdGVwX2NsZWFyX2Zs dXNoX3lvdW5nKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90ICpw dGVwKQo+Pj4+ICAgewo+Pj4+IC0gICAgIGludCB5b3VuZyA9IHB0ZXBfdGVzdF9hbmRfY2xlYXJf eW91bmcodm1hLCBhZGRyZXNzLCBwdGVwKTsKPj4+PiAtCj4+Pj4gLSAgICAgaWYgKHlvdW5nKSB7 Cj4+Pj4gLSAgICAgICAgICAgICAvKgo+Pj4+IC0gICAgICAgICAgICAgICogV2UgY2FuIGVsaWRl IHRoZSB0cmFpbGluZyBEU0IgaGVyZSBzaW5jZSB0aGUgd29yc3QgdGhhdCBjYW4KPj4+PiAtICAg ICAgICAgICAgICAqIGhhcHBlbiBpcyB0aGF0IGEgQ1BVIGNvbnRpbnVlcyB0byB1c2UgdGhlIHlv dW5nIGVudHJ5IGluIGl0cwo+Pj4+IC0gICAgICAgICAgICAgICogVExCIGFuZCB3ZSBtaXN0YWtl bmx5IHJlY2xhaW0gdGhlIGFzc29jaWF0ZWQgcGFnZS4gVGhlCj4+Pj4gLSAgICAgICAgICAgICAg KiB3aW5kb3cgZm9yIHN1Y2ggYW4gZXZlbnQgaXMgYm91bmRlZCBieSB0aGUgbmV4dAo+Pj4+IC0g ICAgICAgICAgICAgICogY29udGV4dC1zd2l0Y2gsIHdoaWNoIHByb3ZpZGVzIGEgRFNCIHRvIGNv bXBsZXRlIHRoZSBUTEIKPj4+PiAtICAgICAgICAgICAgICAqIGludmFsaWRhdGlvbi4KPj4+PiAt ICAgICAgICAgICAgICAqLwo+Pj4+IC0gICAgICAgICAgICAgZmx1c2hfdGxiX3BhZ2Vfbm9zeW5j KHZtYSwgYWRkcmVzcyk7Cj4+Pj4gLSAgICAgfQo+Pj4+IC0KPj4+PiAtICAgICByZXR1cm4geW91 bmc7Cj4+Pj4gKyAgICAgLyoKPj4+PiArICAgICAgKiBUaGlzIGNvbW1lbnQgaXMgYm9ycm93ZWQg ZnJvbSB4ODYsIGJ1dCBhcHBsaWVzIGVxdWFsbHkgdG8gQVJNNjQ6Cj4+Pj4gKyAgICAgICoKPj4+ PiArICAgICAgKiBDbGVhcmluZyB0aGUgYWNjZXNzZWQgYml0IHdpdGhvdXQgYSBUTEIgZmx1c2gg ZG9lc24ndCBjYXVzZQo+Pj4+ICsgICAgICAqIGRhdGEgY29ycnVwdGlvbi4gWyBJdCBjb3VsZCBj YXVzZSBpbmNvcnJlY3QgcGFnZSBhZ2luZyBhbmQKPj4+PiArICAgICAgKiB0aGUgKG1pc3Rha2Vu KSByZWNsYWltIG9mIGhvdCBwYWdlcywgYnV0IHRoZSBjaGFuY2Ugb2YgdGhhdAo+Pj4+ICsgICAg ICAqIHNob3VsZCBiZSByZWxhdGl2ZWx5IGxvdy4gXQo+Pj4+ICsgICAgICAqCj4+Pj4gKyAgICAg ICogU28gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gZG9uJ3QgZmx1c2ggdGhlIFRMQiB3 aGVuCj4+Pj4gKyAgICAgICogY2xlYXJpbmcgdGhlIGFjY2Vzc2VkIGJpdCwgaXQgd2lsbCBldmVu dHVhbGx5IGJlIGZsdXNoZWQgYnkKPj4+PiArICAgICAgKiBhIGNvbnRleHQgc3dpdGNoIG9yIGEg Vk0gb3BlcmF0aW9uIGFueXdheS4gWyBJbiB0aGUgcmFyZQo+Pj4+ICsgICAgICAqIGV2ZW50IG9m IGl0IG5vdCBnZXR0aW5nIGZsdXNoZWQgZm9yIGEgbG9uZyB0aW1lIHRoZSBkZWxheQo+Pj4+ICsg ICAgICAqIHNob3VsZG4ndCByZWFsbHkgbWF0dGVyIGJlY2F1c2UgdGhlcmUncyBubyByZWFsIG1l bW9yeQo+Pj4+ICsgICAgICAqIHByZXNzdXJlIGZvciBzd2Fwb3V0IHRvIHJlYWN0IHRvLiBdCj4+ Pj4gKyAgICAgICovCj4+Pj4gKyAgICAgcmV0dXJuIHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmco dm1hLCBhZGRyZXNzLCBwdGVwKTsKPj4+PiAgIH0KPj4+Pgo+Pj4+ICAgI2lmZGVmIENPTkZJR19U UkFOU1BBUkVOVF9IVUdFUEFHRQo+Pj4KPj4+IFRoZXJlIGFyZSB0aHJlZSBkaXN0aW5jdCBjb25j ZXJucyBoZXJlCj4+Pgo+Pj4gMSkgV2hhdCBhcmUgdGhlIGNoYW5jZXMgb2YgdGhpcyBtaXNsZWFk aW5nIGV4aXN0aW5nIGhvdCBwYWdlIHJlY2xhaW0gcHJvY2Vzcwo+Pj4gMikgSG93IHNlY29uZGFy eSBNTVUgc3VjaCBhcyBTTU1VIGFkYXB0IHRvIGNoYW5nZSBpbiBtYXBwaW5ncyB3aXRob3V0IGEg Zmx1c2gKPj4+IDMpIENvdWxkIHRoaXMgYnJlYWsgdGhlIGFyY2hpdGVjdHVyZSBydWxlIHJlcXVp cmluZyBhIFRMQiBmbHVzaCBhZnRlciBhY2Nlc3MKPj4+ICAgICBiaXQgY2xlYXIgb24gYSBwYWdl IHRhYmxlIGVudHJ5Cj4+Cj4+IEluIHRlcm1zIG9mIGFsbCBvZiBhYm92ZSBjb25jZXJucywgIHRo b3VnaCAyIGlzIGRpZmZlcmVudCwgd2hpY2ggaXMgYW4KPj4gaXNzdWUgYmV0d2Vlbgo+PiBjcHUg YW5kIG5vbi1jcHUsCj4+IGkgZmVlbCBrZXJuZWwgaGFzIGFjdHVhbGx5IGRyb3BwZWQgdGxiIGZs dXNoIGF0IGxlYXN0IGZvciBtZ2xydSwgdGhlcmUKPj4gaXMgbm8gZmx1c2ggaW4KPj4gbHJ1X2dl bl9sb29rX2Fyb3VuZCgpLAo+Pgo+PiBzdGF0aWMgYm9vbCBmb2xpb19yZWZlcmVuY2VkX29uZShz dHJ1Y3QgZm9saW8gKmZvbGlvLAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHZvaWQgKmFyZykKPj4gewo+PiAgICAg ICAgICAuLi4KPj4KPj4gICAgICAgICAgICAgICAgICBpZiAocHZtdy5wdGUpIHsKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChscnVfZ2VuX2VuYWJsZWQoKSAmJgo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0ZV95b3VuZyhwdGVwX2dldChwdm13LnB0ZSkpKSB7Cj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxydV9nZW5fbG9va19hcm91bmQoJnB2bXcp Owo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VkKys7Cj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICB9Cj4+Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAocHRlcF9jbGVhcl9mbHVzaF95b3VuZ19ub3RpZnkodm1hLCBhZGRyZXNzLAo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHZtdy5wdGUpKQo+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VkKys7Cj4+ICAgICAgICAg ICAgICAgICAgfQo+Pgo+PiAgICAgICAgICByZXR1cm4gdHJ1ZTsKPj4gfQo+Pgo+PiBhbmQgc28g aXMgaW4gd2Fsa19wdGVfcmFuZ2UoKSBvZiB2bXNjYW4uICBsaW51eCBoYXMgYmVlbiBzdXJ2aXZp bmcgd2l0aAo+PiBhbGwgYWJvdmUgY29uY2VybnMgZm9yIGEgd2hpbGUsIGJlbGlldmluZyBpdCBv ciBub3QgOi0pCj4gCj4gQWx0aG91Z2ggdGhlIGZpcnN0IHR3byBjb25jZXJucyBjb3VsZCBiZSB3 b3JrZWQgdXBvbiBpbiB0aGUgU1csIGtlcm5lbCBzdXJ2aXZpbmcKPiBhZnRlciBicmVha2luZyBh cmNoIHJ1bGVzIGV4cGxpY2l0bHkgaXMgbm90IGEgY29ycmVjdCBzdGF0ZSB0byBiZSBpbiBJTUhP LgoKTm90IHN1cmUgd2hhdCdzIHRoZSBtZWFuaW5nIG9mICJub3QgYSBjb3JyZWN0IHN0YXRlIiwg YXQgbGVhc3Qgd2UgCihBbGliYWJhKSBoYXZlIG5vdCBmb3VuZCB0aGlzIGNhbiBjYXVzZSBhbnkg aXNzdWVzIHVudGlsIG5vdyB3aGVuIHVzaW5nIApNR0xSVSBvbiB4ODYgYW5kIEFSTTY0IHBsYXRm b3Jtcy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK 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 A2F47C25B48 for ; Thu, 26 Oct 2023 12:32:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E74F26B035E; Thu, 26 Oct 2023 08:32:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E24BC6B035F; Thu, 26 Oct 2023 08:32:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D136B6B0360; Thu, 26 Oct 2023 08:32:53 -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 C1AFF6B035E for ; Thu, 26 Oct 2023 08:32:53 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4EBCB160935 for ; Thu, 26 Oct 2023 12:32:53 +0000 (UTC) X-FDA: 81387551826.28.8508F56 Received: from out30-131.freemail.mail.aliyun.com (out30-131.freemail.mail.aliyun.com [115.124.30.131]) by imf04.hostedemail.com (Postfix) with ESMTP id 0333E4000C for ; Thu, 26 Oct 2023 12:32:48 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.131 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698323571; 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=l4P9q3JKjvOw9ABm1570GOx+ic1eoE58K/bAGiyTYOk=; b=1vlfxV14TtSOt2SAekdapiTq+vld5R4bd5nXuKSAscvHRRtZK3kDVM6VsxQ5uDBy9hcVIX 4edoxfI3cY9kdztOgyTF2RzndyNdL6wUrT9s7onQHsU0mlaSFJvEN5BVJWCZBJoRFY07Ue E7Z+3/An8K+9sT5+1Vfbryk7JY1wt6c= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.131 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698323571; a=rsa-sha256; cv=none; b=0oerakmYCaqWdX5hH9q/mBge4MwfjzICYnbtPnqIVIoNkg2lVwN31qAYFy1tgBmsFxdY30 fcPsN6YgtA634xtXny6U+G9sAXYFMPvyNui/lG8mhhR7J2iCZTGvShVUjO69RtGi7cLGfr qMYxe3w8GEVmGA1rLsUYq9+isjpwu4M= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0VuxqP9._1698323546; Received: from 30.97.48.63(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VuxqP9._1698323546) by smtp.aliyun-inc.com; Thu, 26 Oct 2023 20:32:27 +0800 Message-ID: <37a3e0d0-329f-576f-2498-986ff260c07a@linux.alibaba.com> Date: Thu, 26 Oct 2023 20:32:42 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] arm64: mm: drop tlb flush operation when clearing the access bit To: Anshuman Khandual , Barry Song <21cnbao@gmail.com> Cc: catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, v-songbaohua@oppo.com, yuzhao@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <2f55f62b-cae2-4eee-8572-1b662a170880@arm.com> From: Baolin Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 0333E4000C X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 7bdnhafr1womtzu495w7gjnkhff915fw X-HE-Tag: 1698323568-937866 X-HE-Meta: U2FsdGVkX1+YukdW8JQfwWBPaE2bX3noxsjQaW5kpbHBY9ubTQFkkN+fSxx9K5a6w2JFk71JjQhy8AM2EAbE8CrfVo+thtS2r8DsYpEoGb/2cTFuR3V5NZPutB5rsDjuuIDE3XxooIbvqboBP6edPU8x8gi0HG/Ue57ih+8uUEVw/TsZifQrXXPYR7Frv62Xp0decagERjUZvL/145IqN6lr+WQ3rgcyRIZQZHiJnzrDL5jVQRqMOWvXFyB0KXhhfDUpJcOKnxqSn4TLrVxbtK6EbYT1Op9Nsl8sejzBGtayfAnNJhWiVg7Iy7vJIvg2pmorDQQdPC8Zduc2Rb9ihmi1Se+qIxZPl84/8m86NHMqoMqAqUIA2afBB5u6E+lfcjecYUVdU1Gk/4GbcFrpCuGN6cUhd1EuDDP0kEp8XSV+QxRDtzWxNuoqROG2Mscp55/nHmoOXZK+7me+Tqk0H+6m8sdfjjfGH1le8dVY33W+Gvho8Cjgapm2zT1FQQCeVJEXIdX+qRGJk9jHuWHsTi7N+/edvzjxSx59z9q9dDvA3TnGF6P8Pa3UX9TEBIfyhP97mpPwBrSJGOeHTq9a/oWKwzK/klKjOHEk8yXTHqvEKuTRk0awA41CkJ1qpi9IBVkrPF5YgYGnr+RunTOYqLpwKopDaQwsL73FSFucu+UAkQlhIf5AmvJr9648Pji7f7Pt6IKdKfD4Cl+ij56dj4kcRgxgAbI0mWNdkoXrFd4xaD8Y5rsOXWwD37uMzIh//l1IyE7/e6psrA+E+JYKVVl99NBsu3h9dOgtPCH/yt3/sG9Y28Zq4pTNTCI2vqasyLTmgXWyAti+3GDl21MzfMyCsPGJswh+0R0Y6BU95zMa2CFxSkvKbz3BFbCKxa2YJl6DoOf9RqcpXrCqtLKSIBxEJC9qFi118eYVfaB4qo83jPr3YSR7mdCOi67BHrNWlk2zQYVemmt4+X/yOOx zyjQOz1M qM6JFyP4AHiKyfwitMm/D+PntK7iqeHsvAYHeorQTVvE6ZvhHngEdgGOLHhKsitu/0OlYPsEKEmNMfDF/Hz93MtbWpcBawlNLWQXTwV/P6TjIMccdYhWn6e1B+7+QSROoCiR3EsJK9HZQ+NnaOAw11y7qln+MD3qXTqZJvejOsQifGSuc0TFYkmPYGSrDAN2Si2UgYbMESLLkxaVOOghAJZze0zddj8cFrA3BNdOmMX57WXQ= 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: List-Subscribe: List-Unsubscribe: On 10/26/2023 2:01 PM, Anshuman Khandual wrote: > > > On 10/26/23 11:24, Barry Song wrote: >> On Thu, Oct 26, 2023 at 12:55 PM Anshuman Khandual >> wrote: >>> >>> >>> >>> On 10/24/23 18:26, Baolin Wang wrote: >>>> Now ptep_clear_flush_young() is only called by folio_referenced() to >>>> check if the folio was referenced, and now it will call a tlb flush on >>>> ARM64 architecture. However the tlb flush can be expensive on ARM64 >>>> servers, especially for the systems with a large CPU numbers. >>> >>> TLB flush would be expensive on *any* platform with large CPU numbers ? Perhaps yes, but did not measure it on other platforms. >>>> Similar to the x86 architecture, below comments also apply equally to >>>> ARM64 architecture. So we can drop the tlb flush operation in >>>> ptep_clear_flush_young() on ARM64 architecture to improve the performance. >>>> " >>>> /* Clearing the accessed bit without a TLB flush >>>> * doesn't cause data corruption. [ It could cause incorrect >>>> * page aging and the (mistaken) reclaim of hot pages, but the >>>> * chance of that should be relatively low. ] >>>> * >>>> * So as a performance optimization don't flush the TLB when >>>> * clearing the accessed bit, it will eventually be flushed by >>>> * a context switch or a VM operation anyway. [ In the rare >>>> * event of it not getting flushed for a long time the delay >>>> * shouldn't really matter because there's no real memory >>>> * pressure for swapout to react to. ] >>>> */ >>> >>> If always true, this sounds generic enough for all platforms, why only >>> x86 and arm64 ? I am not sure this is always true for every architectures. >>>> " >>>> Running the thpscale to show some obvious improvements for compaction >>>> latency with this patch: >>>> base patched >>>> Amean fault-both-1 1093.19 ( 0.00%) 1084.57 * 0.79%* >>>> Amean fault-both-3 2566.22 ( 0.00%) 2228.45 * 13.16%* >>>> Amean fault-both-5 3591.22 ( 0.00%) 3146.73 * 12.38%* >>>> Amean fault-both-7 4157.26 ( 0.00%) 4113.67 * 1.05%* >>>> Amean fault-both-12 6184.79 ( 0.00%) 5218.70 * 15.62%* >>>> Amean fault-both-18 9103.70 ( 0.00%) 7739.71 * 14.98%* >>>> Amean fault-both-24 12341.73 ( 0.00%) 10684.23 * 13.43%* >>>> Amean fault-both-30 15519.00 ( 0.00%) 13695.14 * 11.75%* >>>> Amean fault-both-32 16189.15 ( 0.00%) 14365.73 * 11.26%* >>>> base patched >>>> Duration User 167.78 161.03 >>>> Duration System 1836.66 1673.01 >>>> Duration Elapsed 2074.58 2059.75 >>> >>> Could you please point to the test repo you are running ? The test is based on v6.5 kernel. >>>> Barry Song submitted a similar patch [1] before, that replaces the >>>> ptep_clear_flush_young_notify() with ptep_clear_young_notify() in >>>> folio_referenced_one(). However, I'm not sure if removing the tlb flush >>>> operation is applicable to every architecture in kernel, so dropping >>>> the tlb flush for ARM64 seems a sensible change. >>> >>> The reasoning provided here sounds generic when true, hence there seems >>> to be no justification to keep it limited just for arm64 and x86. Also Right, but I can not ensure if this will break other architectures. >>> what about pmdp_clear_flush_young_notify() when THP is enabled. Should >>> that also not do a TLB flush after clearing access bit ? Although arm64 Yes, I think so. >>> does not enable __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH, rather depends on >>> the generic pmdp_clear_flush_young() which also does a TLB flush via >>> flush_pmd_tlb_range() while clearing the access bit. >>> >>>> >>>> Note: I am okay for both approach, if someone can help to ensure that >>>> all architectures do not need the tlb flush when clearing the accessed >>>> bit, then I also think Barry's patch is better (hope Barry can resend >>>> his patch). >>> >>> This paragraph belongs after the '----' below and not part of the commit >>> message. OK. >>>> [1] https://lore.kernel.org/lkml/20220617070555.344368-1-21cnbao@gmail.com/ >>>> Signed-off-by: Baolin Wang >>>> --- >>>> arch/arm64/include/asm/pgtable.h | 31 ++++++++++++++++--------------- >>>> 1 file changed, 16 insertions(+), 15 deletions(-) >>>> >>>> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h >>>> index 0bd18de9fd97..2979d796ba9d 100644 >>>> --- a/arch/arm64/include/asm/pgtable.h >>>> +++ b/arch/arm64/include/asm/pgtable.h >>>> @@ -905,21 +905,22 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, >>>> static inline int ptep_clear_flush_young(struct vm_area_struct *vma, >>>> unsigned long address, pte_t *ptep) >>>> { >>>> - int young = ptep_test_and_clear_young(vma, address, ptep); >>>> - >>>> - if (young) { >>>> - /* >>>> - * We can elide the trailing DSB here since the worst that can >>>> - * happen is that a CPU continues to use the young entry in its >>>> - * TLB and we mistakenly reclaim the associated page. The >>>> - * window for such an event is bounded by the next >>>> - * context-switch, which provides a DSB to complete the TLB >>>> - * invalidation. >>>> - */ >>>> - flush_tlb_page_nosync(vma, address); >>>> - } >>>> - >>>> - return young; >>>> + /* >>>> + * This comment is borrowed from x86, but applies equally to ARM64: >>>> + * >>>> + * Clearing the accessed bit without a TLB flush doesn't cause >>>> + * data corruption. [ It could cause incorrect page aging and >>>> + * the (mistaken) reclaim of hot pages, but the chance of that >>>> + * should be relatively low. ] >>>> + * >>>> + * So as a performance optimization don't flush the TLB when >>>> + * clearing the accessed bit, it will eventually be flushed by >>>> + * a context switch or a VM operation anyway. [ In the rare >>>> + * event of it not getting flushed for a long time the delay >>>> + * shouldn't really matter because there's no real memory >>>> + * pressure for swapout to react to. ] >>>> + */ >>>> + return ptep_test_and_clear_young(vma, address, ptep); >>>> } >>>> >>>> #ifdef CONFIG_TRANSPARENT_HUGEPAGE >>> >>> There are three distinct concerns here >>> >>> 1) What are the chances of this misleading existing hot page reclaim process >>> 2) How secondary MMU such as SMMU adapt to change in mappings without a flush >>> 3) Could this break the architecture rule requiring a TLB flush after access >>> bit clear on a page table entry >> >> In terms of all of above concerns, though 2 is different, which is an >> issue between >> cpu and non-cpu, >> i feel kernel has actually dropped tlb flush at least for mglru, there >> is no flush in >> lru_gen_look_around(), >> >> static bool folio_referenced_one(struct folio *folio, >> struct vm_area_struct *vma, unsigned long address, void *arg) >> { >> ... >> >> if (pvmw.pte) { >> if (lru_gen_enabled() && >> pte_young(ptep_get(pvmw.pte))) { >> lru_gen_look_around(&pvmw); >> referenced++; >> } >> >> if (ptep_clear_flush_young_notify(vma, address, >> pvmw.pte)) >> referenced++; >> } >> >> return true; >> } >> >> and so is in walk_pte_range() of vmscan. linux has been surviving with >> all above concerns for a while, believing it or not :-) > > Although the first two concerns could be worked upon in the SW, kernel surviving > after breaking arch rules explicitly is not a correct state to be in IMHO. Not sure what's the meaning of "not a correct state", at least we (Alibaba) have not found this can cause any issues until now when using MGLRU on x86 and ARM64 platforms.