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 07192C001DC for ; Mon, 31 Jul 2023 11:05:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 48C2F6B00D2; Mon, 31 Jul 2023 07:05:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 415A26B00D3; Mon, 31 Jul 2023 07:05:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DD0B280023; Mon, 31 Jul 2023 07:05:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 1AF716B00D2 for ; Mon, 31 Jul 2023 07:05:41 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D886B40200 for ; Mon, 31 Jul 2023 11:05:40 +0000 (UTC) X-FDA: 81071626440.08.73974B9 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf01.hostedemail.com (Postfix) with ESMTP id 4218440011 for ; Mon, 31 Jul 2023 11:05:38 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf01.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690801538; 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: in-reply-to:in-reply-to:references:references; bh=4vGKdw/o2lA0qWxLxkiW3KO7yrQPrwrqbRKwVE1vX0w=; b=f+SHa2xglyefUWvbgPSlHcn7L2wc1355MFCdtKCOt74wul0ugRC9jDLONyJiu8EfzfW/bT Gl193178Wlc0uB9A7H0B73z/utD/ei6n16yL708Cd5pBX0O4BedVegzI8myypGAtKojWE+ njgExtK7Vuu9S3JuXhcpDZcUrBF8b0k= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf01.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690801538; a=rsa-sha256; cv=none; b=JARcPBVHag8UNNO48QMKddwwRNuzm29oaYVMQbWRNozkemBhc3bHGNVFR2fm/2XvDm9htI gy+8daeJiNfsZDLDxjXF2WEDSaEm8uFE2MGYnBdUU7bFMBNgJlqRSBhNMZa2zmeC9AN34R dzoEA6pAerFisL3c4nYGee/sZ0EObrI= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4B4666102E; Mon, 31 Jul 2023 11:05:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BA7EC433C8; Mon, 31 Jul 2023 11:05:29 +0000 (UTC) Date: Mon, 31 Jul 2023 12:05:25 +0100 From: Catalin Marinas To: Kefeng Wang Cc: Andrew Morton , Will Deacon , Mike Kravetz , Muchun Song , Mina Almasry , kirill@shutemov.name, joel@joelfernandes.org, william.kucharski@oracle.com, kaleshsingh@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/4] mm: mremap: use flush_pmd_tlb_range() in move_normal_pmd() Message-ID: References: <20230731074829.79309-1-wangkefeng.wang@huawei.com> <20230731074829.79309-3-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230731074829.79309-3-wangkefeng.wang@huawei.com> X-Rspamd-Queue-Id: 4218440011 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: xbgrpdc3onrfdfixit9e4jdyqsan8ief X-HE-Tag: 1690801538-424366 X-HE-Meta: U2FsdGVkX19efVWfQyIa8UETTynJKXz/H61zHP/GUhmWJZ9Oq/6wrhCBEIQlE9oMDcLn/6PKAgv6drU0gnEc7EeJ4CIothRg+uwUqjKtp29XxVGWtBiG4ZQNmgW4pgoGTXrvu8gt/9EaFNAtN6xLc58ylnSKOnw1UZZTBfMrm979i/sJQpt8o7gjRyQpsXNo+U7GAHIgfB4pb4yDg5eakLFzcohmIYOdnnVNS/GmRfpZ6h32bHz6if3YsCgPPJyoqeIs7JEBmTMDUX9PSgZgP8RTD5PQSnlERHucCy/42m5KvI86HLwAoPlgmxXuGt3+QDopPgZwQkWBp6zQEcJyU46QaNYHcnqjvsrr3tGzClbUrcZEkxUM45mIeDnUDukzrQzovBvvfthqP66evAwzjVB3lMs5v3EfXMir0Gn03btpqfSt9CsxC44rixzQsrepgVfxiS+AFgy5ypguN4x6pVD1dHD6khhyNMN3iGpYMT/Wj0PjxWAD8J9VF5aQ1IGT/Gz4fyPBOcRTLyw29o8JunfMLMa/h517ZxAlxbhpgB+OuI3/9EEN32SSgysdEv36TZ2iDieS1ZU1jb2gQ+ASPFxgUrJm8x9VLYgCNLdD+DXE/6tcibkGX6vSwz/B/38o7OxworQcaLLRWpE+6VO5/ZmSiZA+dyI73NDcyUrSKzqD3x7SShGkKYQhn+gxO4bIl0nTltmMsmqM48yjv7GC9OzX0SVgWubhnfjrBrGWLBIiCO6UMJRAg1zRNvoy+3OempmVZsTNn64y+/z288vMBkyfr2jC+ObJSrku5UJgZG9sfXn4K7H1Qjucbr+yggz3x1ErLoToJ0Ld5pPE6aGsHaQhmJYeXefCyO2Xb3LZoRA0wMh1Oe8+XkTr+mQRWoMPO5az4pGz3qoiPrQJ56xWN7nBcAn3YJDA/Y7v7JE0W75Eg09ZHyoDO3ARICnbCoUIv//tjBw1IkIHuPrfXi7 acWTFTQ2 9KSqvzv/tNvy3ckEmQs2+AweKfoVap2vWWxvLgOJ6T5kdEjIf6ID417FlNPuJUbNGrTbh1FPWK1FOnq5ns4EnFXt5HRC/oG/X2v7R64uAyKl60SqES9nn7s6+rcMkOkAU8wJiDbUhMqGDqnSaayzOfLvq6unYPzi13AvTg1PINLwmFkxVn2tD5/7EPFIJANsLX2nyHQQqBwuDFhFsosXiunh7qLgSFgHnOukmeOWDc4nUpHdzNeZnEvNcVXLZDbbdNpMlqc2RE6KG7FY6zYtdEtxom8ullNQbBC5hhvqZAWGU+iBEk02jfTFJut1Tk6AMv9uMUZpRELcz/eWUb7Oy+MrARSvqTPpowTDS201UzLbvA8gKqipxyy/QwxHoveAiic8H121+B2ElQ36J1kGWKhr2qDMyfq8VYJwjY3mTjO0PScy2I5Is2y5C+avd1SPps9waV1Sov+UQdXK5jeUJuQzio2Oo6189p+6QE3Jy6FaqUzE= 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: On Mon, Jul 31, 2023 at 03:48:27PM +0800, Kefeng Wang wrote: > Archs may need to do special things when flushing thp tlb, > so use the more applicable flush_pud_tlb_range() instead of > flush_tlb_range(). > > Fixes: 2c91bd4a4e2e ("mm: speed up mremap by 20x on large regions") > Signed-off-by: Kefeng Wang > --- > mm/mremap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/mremap.c b/mm/mremap.c > index 11e06e4ab33b..1883205fa22b 100644 > --- a/mm/mremap.c > +++ b/mm/mremap.c > @@ -284,7 +284,7 @@ static bool move_normal_pmd(struct vm_area_struct *vma, unsigned long old_addr, > VM_BUG_ON(!pmd_none(*new_pmd)); > > pmd_populate(mm, new_pmd, pmd_pgtable(pmd)); > - flush_tlb_range(vma, old_addr, old_addr + PMD_SIZE); > + flush_pmd_tlb_range(vma, old_addr, old_addr + PMD_SIZE); I don't think that's correct for arm64. The assumption in the flush_p*d_tlb_range() was that they are called only for block mappings at that p*d level (and we use FEAT_TTL on arm64 indicating that the leaf level is level 2 for pmd, 1 for pud). IIUC move_normal_pmd() is only called for table pmds which would have a leaf level of 3 (the pte). Same for the next patch doing the equivalent for the pud. -- Catalin