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 4D9CBC25B10 for ; Fri, 10 May 2024 09:19:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAC286B0096; Fri, 10 May 2024 05:19:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B35856B00A2; Fri, 10 May 2024 05:19:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9B8B06B00A0; Fri, 10 May 2024 05:19:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 79E6A6B00A2 for ; Fri, 10 May 2024 05:19:28 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 083BE14044F for ; Fri, 10 May 2024 09:19:28 +0000 (UTC) X-FDA: 82101938016.28.90CEED1 Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by imf14.hostedemail.com (Postfix) with ESMTP id 1654F100018 for ; Fri, 10 May 2024 09:19:25 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Q74Rp5wP; spf=pass (imf14.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715332766; 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:dkim-signature; bh=Fwcye2cmMvVkzOb2RmQWM8DhgejhAa5fax0EB+I/fqo=; b=r9BG7WN9c+S644025Z5dB2GjlTmEdGtN34Hjg84czU4i2ULH7OexgZKBkV9BLf8VUJrxMi VKteYATwwkEYdeEpW+iV87dRAv7Nzkl98uxGKMfvk9zLmKOkKB+4tYisKKS9Z8Gjk2tbp4 OTXgDgzqB365R4kFukFluQYjCFIEkqQ= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Q74Rp5wP; spf=pass (imf14.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715332766; a=rsa-sha256; cv=none; b=KuQIKTY1uSEGNiU1JUmlLYiS0vgzCqHzvHECfGA09aIxr5dMDSI0kswKUWvdPPBlH/pQbQ BMqMy2jqZqYov3tjobUzOfj0qOKUZ58R2Z1edYHTPIMZY3h/giOc2TYt21nf/qhrGW9C3E 4uCuZuxLj+BqmbuYW2eBJ6qYfTgzC/k= Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-51f3761c96aso2225397e87.3 for ; Fri, 10 May 2024 02:19:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715332764; x=1715937564; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Fwcye2cmMvVkzOb2RmQWM8DhgejhAa5fax0EB+I/fqo=; b=Q74Rp5wPe1voxvbRai3pVgPONuUUcBfAjlrNVVySJq4cGXF/0wpH/2NpELso3WlDDG cohfHIflz29kQ/jE4jo1YXKHwy8QrbFoLuRnpDyOA894YnO8A/A4/8oZWrZ0JOBqSXAm HA0YldBo01zQZaR9KnZR78tUScZwI5Q9wgQXcVXh71swPr8Zdcn6yZsn6WvmfNzCeg2V oVk5i2Ftd8swNImmrW42VRmD4Ltz6kL4FYRWEeTpZonPeeq4cWxMNtjHOvu89R1aphNi 26nt6TW+yyvye+PtDk6TI0Jy0IVZ5auzZgDR7h0gY9W/K2I5+RuA/QnJtuRoBj2Qz7lv BI/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715332764; x=1715937564; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fwcye2cmMvVkzOb2RmQWM8DhgejhAa5fax0EB+I/fqo=; b=EOfNRB4e/MgPiMRxeaEmaIseOmxINJNgXTkQK/R5h/Y/riOTTeipRFisxlt36Eb3MZ cqap0jll62iP4OgaCCXge9IKtDwyjc5Lb9EM1q4bguH/oiy+nQGKyh38fo9H0MbTbyDD ZQupDXjrtXtliMt7NAEux39eSO4rtDtpGLZ39iev1Qr2jHXqVXLsIGLZ3fnY3pH0RveW 2Ids+EMP9wMb7+s6ObR7ZKA8XKaCp2qxr7YShGfBkGkHNs634tZzP9AXVcjuZK1xif2S 1J8AIt8qHGDSpp02xUSZoVlprAdXkD7BPpjtvdve8j7QfPtywQrP3vauymZOxCwwvsLW WiCQ== X-Forwarded-Encrypted: i=1; AJvYcCWdte1zjvRNBhE1GIXDjAZr2LgO2gvOGnqxwgSCE7Jh9kAiTXQYv6X0CDjqoR6raxSropmp5DhMyc6HGgMIZ724FuA= X-Gm-Message-State: AOJu0Yy7J0LMkJnWqn1DUoWkOoLLPaVzRd8vytEcvnlQmg9n99RMdoSP 0JNwiaCIPD7rV7TU5EG0GR1dxxehXaEr27YQgM5t8M7jjRX2BN3CnQhIBHLYjdkVBbZ4l1d8zRM WzlZdNowyR4YjczVKoWrg0KnmJXQ= X-Google-Smtp-Source: AGHT+IHc8ejS+uh+vZ4ONq0UjpSRCAJS/lYZfonb8VrowpLbGOm9rPid8UtfVuCRbn1pG5g/TjPFUolkPn0uDb6PLKo= X-Received: by 2002:a05:6512:3e01:b0:515:d1a6:1b07 with SMTP id 2adb3069b0e04-5220fc7bdc8mr2561142e87.15.1715332763829; Fri, 10 May 2024 02:19:23 -0700 (PDT) MIME-Version: 1.0 References: <20240506155120.83105-1-libang.li@antgroup.com> <20240506155120.83105-6-libang.li@antgroup.com> In-Reply-To: From: Lance Yang Date: Fri, 10 May 2024 17:19:12 +0800 Message-ID: Subject: Re: [PATCH v2 5/5] mm: Add update_mmu_tlb_range() To: Ryan Roberts Cc: Bang Li , akpm@linux-foundation.org, chenhuacai@kernel.org, tsbogend@alpha.franken.de, paul.walmsley@sifive.com, palmer@dabbelt.com, chris@zankel.net, jcmvbkbc@gmail.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, david@redhat.com, libang.linux@gmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 1654F100018 X-Rspamd-Server: rspam06 X-Stat-Signature: ean1md1scoqg7pmts69a6f6naqhriant X-HE-Tag: 1715332765-191469 X-HE-Meta: U2FsdGVkX1904WvCE4Zv9YQP2j1/x2d3TRJVc4cTGWKZ3xqVelCie20ogWjjAbkqwOxyE5KHbz90ldQLHMBxNGM+XYrGWXivtIExIwT02EIbo7rb0O1jhYFjSi3ponqPX9U5Yd0Kf2SyagGtfeP214ab2lnS2sWcsL8a0ZH+wRfahNWAWtsEJTscJ40hgcU5ulPB2IXXmQyf9+S35jBTJwn+aoF5VbUDPCTUQl75a4nSDl7SI21/MbqgAeFXQP3hsf9DVsH6bvkxGF6VAepV5P6oaMnE0Ieg5Gy6Klj8oBUpLoI8bc0+PhwTBf1KWpn+KfWe6vAHzdSIe+LQflJCQRqET9GlJ2sftvs+x7Mo/5MNQlQ44X2y6gHhAFuXT2YMadLdu+TngcBn9Cqbr+BgpPFLkoRn+f0sbDw+pNjU6QyYZBrRau4vpX2W1cbB5umON0NkQriaNshR7s4jCUKVf684JIpcF2F8S1sqp08SawTR5B+3cRzWXmJgAjEyC4tI2a1B+UXY8PkdQzJ/LzPaTgtTLY7i2yvoQoaJeeYjIasUGZAuSZje80zz+lTFgf3Q/IhQhOvOeEef0m0hnN6F5zVt4eCp10VWInvJfVkPANSqG7Rr6buM0fGFUMtFe2GzuBjxMsCqR63f6AMJc7TgdnxwKDM7gyMDzSUUty6Gd18x/8vV9wx3/MdTWrpkM3E6cWkCq3SxWMD7e8sjynZOwA3VSQkzkCNQ8zmHnmuVtOVnUiyDKlp5ylI6hOFQnl/7jXrVGt1oSLeJPnLGkioayztdSWtuyKLlK/GhSOeJx1eU+Bgl8/4kcIGNEJUdMhUQL0iGbQ8zSPW1sad1pQexksyjuC8uQIX5HuhdsYGgYhlCZ9fkqcEqgWw0jJQ3tllCkMGMhDv1B+qi+8KzLLp67K8CqZ6qGIwdhJ1UV31hsHHz1MR/lsd45bj0vqdnNK6DpyaoZRKu3wSNS34cVcE aAwypiVP 9pje7JpkXY/JlfQ20INGtYeG2EQoAG1VkmL+r3kbDJXhlAqJp40z8eyCYhRE0KS1i1Hq5AsXClgae9MPHhrCvPRD0xwT/VoT5Qf2GBhXtzqnpbfRD6XligW+GgyB6d/SNedgwlbWg2VQiUfJtUbrqSOQGXqpWMBjhgcdcAaDOYrmP61JfnVt98ZGo/ssnWsFVpT6ql1yBiPIRrw340rzuCn0O1gSOSsPLVeYwUAWQh96DPSUoCWAMVEb8mnchDwk0g9HYeopB0R7a1pYuT6T/gSHN12Yfi8wE13m0xW1nXhOwYEtIFWREZWSydJXpqE83+NHDkTBcB8tNh+6YqrPZ077/HqRCGW/IsZPvk2jav2p0GSXJhNUWQjCTEzVPBEMHvbUYh0em6oDIr45K06L6o56LflgJUh+QzqgBRjlLHisImUdnkv8Lcn5G4MTNei7/SyQJbewL0U+4aKBp5U4Weym7wiYAJPR74ck1IpDS0peWOkcu3BdpYm20jEgNg1EJqnooB8zwGzJemebE1+wppr4mt4KYeM3OHgsPNhgJ1fghOY9GSOtP+H/q5nnEYxvy+dA4ynZev7dICMlLoZQUSeleQg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000108, 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 Fri, May 10, 2024 at 5:05=E2=80=AFPM Ryan Roberts = wrote: > > On 06/05/2024 16:51, Bang Li wrote: > > After the commit 19eaf44954df ("mm: thp: support allocation of anonymou= s > > multi-size THP"), it may need to batch update tlb of an address range > > through the update_mmu_tlb function. We can simplify this operation by > > adding the update_mmu_tlb_range function, which may also reduce the > > execution of some unnecessary code in some architectures. > > > > Signed-off-by: Bang Li > > --- > > include/linux/pgtable.h | 8 ++++++++ > > mm/memory.c | 4 +--- > > 2 files changed, 9 insertions(+), 3 deletions(-) > > > > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h > > index 18019f037bae..869bfe6054f1 100644 > > --- a/include/linux/pgtable.h > > +++ b/include/linux/pgtable.h > > @@ -737,6 +737,14 @@ static inline void update_mmu_tlb(struct vm_area_s= truct *vma, > > #define __HAVE_ARCH_UPDATE_MMU_TLB > > #endif > > Given you are implementing update_mmu_tlb_range() in all the arches that > currently override update_mmu_tlb() I wonder if it would be cleaner to re= move > update_mmu_tlb() from all those arches, and define generically, removing = the > ability for arches to override it: Sounds great! Let's get it done. > > static inline void update_mmu_tlb(struct vm_area_struct *vma, > unsigned long address, pte_t *ptep) > { > update_mmu_tlb_range(vma, address, ptep, 1); > } > > > > > +#ifndef __HAVE_ARCH_UPDATE_MMU_TLB_RANGE > > +static inline void update_mmu_tlb_range(struct vm_area_struct *vma, > > + unsigned long address, pte_t *ptep, unsig= ned int nr) > > +{ > > +} > > +#define __HAVE_ARCH_UPDATE_MMU_TLB_RANGE > > +#endif > > Then you could use the modern override scheme as Lance suggested and you = won't > have any confusion with __HAVE_ARCH_UPDATE_MMU_TLB because it won't exist= anymore. +1. It might be better to use the modern override scheme :) Thanks, Lance > > > + > > /* > > * Some architectures may be able to avoid expensive synchronization > > * primitives when modifications are made to PTE's which are already > > diff --git a/mm/memory.c b/mm/memory.c > > index eea6e4984eae..2d53e29cf76e 100644 > > --- a/mm/memory.c > > +++ b/mm/memory.c > > @@ -4421,7 +4421,6 @@ static vm_fault_t do_anonymous_page(struct vm_fau= lt *vmf) > > vm_fault_t ret =3D 0; > > int nr_pages =3D 1; > > pte_t entry; > > - int i; > > > > /* File mapping without ->vm_ops ? */ > > if (vma->vm_flags & VM_SHARED) > > @@ -4491,8 +4490,7 @@ static vm_fault_t do_anonymous_page(struct vm_fau= lt *vmf) > > update_mmu_tlb(vma, addr, vmf->pte); > > goto release; > > } else if (nr_pages > 1 && !pte_range_none(vmf->pte, nr_pages)) { > > - for (i =3D 0; i < nr_pages; i++) > > - update_mmu_tlb(vma, addr + PAGE_SIZE * i, vmf->pt= e + i); > > + update_mmu_tlb_range(vma, addr, vmf->pte, nr_pages); > > I certainly agree that this will be a useful helper to have. I expect the= re will > be more users in future. > > > goto release; > > } > > >