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 438F4C001DC for ; Mon, 31 Jul 2023 10:21:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AFC796B00C5; Mon, 31 Jul 2023 06:21:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AAB1A6B00C6; Mon, 31 Jul 2023 06:21:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9736D28001A; Mon, 31 Jul 2023 06:21:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 876386B00C5 for ; Mon, 31 Jul 2023 06:21:14 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 59E87B177A for ; Mon, 31 Jul 2023 10:21:14 +0000 (UTC) X-FDA: 81071514468.08.559B0B4 Received: from mail-vk1-f178.google.com (mail-vk1-f178.google.com [209.85.221.178]) by imf01.hostedemail.com (Postfix) with ESMTP id 81B9540005 for ; Mon, 31 Jul 2023 10:21:12 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=BHg2KigS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690798872; 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=CO4YP+z4WMJqE5RYqhT1g/1uHKez6CCD1v5scqmSYRs=; b=GIG0oFIQAE4NVVAwbF2OiNknwmHPQY0fsZFpv8aRlbhKFre1ydZFsLyH8EOoaZd0FkRIVz tAgsBBlAosnpsQZ+S9tvYjgbKwUl7b5l4qD0rquRkPM16wpAr+toc5zqbl3NhoCTnTv8HR bUOk4HfhtdKKSz+2SIFWDsLWtK30vBs= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=BHg2KigS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690798872; a=rsa-sha256; cv=none; b=ZKiLGI2EiJCtFQ4ofNGonCuwsftJlrmikMKAeqbrZEQtfZuw5fUT7HQXYu2ZBhgV6SSG1b sjIU/zvvpXTg1HSIoYAWwqnJghv/hCzBM+5Rp7bEmJG4W/OYWiYFXPSlXZYthhobokzwt/ aez1UEd7QdOD8itPPlysV5bygkFIUFQ= Received: by mail-vk1-f178.google.com with SMTP id 71dfb90a1353d-486198c70adso1379121e0c.0 for ; Mon, 31 Jul 2023 03:21:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690798871; x=1691403671; 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=CO4YP+z4WMJqE5RYqhT1g/1uHKez6CCD1v5scqmSYRs=; b=BHg2KigSzxjM8O+0pSQB4U/kMfbZ/7YxZeU8oKQ9KKb9FcBg4qcN0K2eIpc3JXjoZj ZThQoYbt1+OJlW5BiejOFwmOtoRQ9enWBLDpreFpUGE6k4ap2Otx8TNTrYNejQ2cMDHI i0BdNUfmiKprdXVMjp0Qa57wraiMYEG7MUCjT/kY470ln8PAgB4tlRVplAL0aDzeBpLz lgI5MELtuDb/oMko+/1LmyCDGkrmc0//TvBCvZZ8dnmCqfCE88Bp+urqibbQo/LmTKug ijCPrfXpJQ5UbizeUg/BYC7yNwqfJDCXfndKAlGhYFWOY4ASD+wVQAc5a2w4Tdc0cphH 7QFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690798871; x=1691403671; 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=CO4YP+z4WMJqE5RYqhT1g/1uHKez6CCD1v5scqmSYRs=; b=THR74z2JVwjwfqUwMKuhzXHMV8fUN4tx4ppZkTt3rIU5JUjyX6EImw6C3jwy8+uyb/ GBMpfC6MSPy0GGRx+pG5qEMfWtgBqtUYWJ3NXd04tYBPNEQ/5LPRQYRg6PLKnZx6kfq4 PPVm2cjhajlheO6PA2OKvKouRVXKQ4dmIuBonDF/6NOZv81nHF9BCCmL55qAnzQI0qST vNikVu0Inl9KE4Ko03FSkx0N3MvdqXrmn0xaMDJ3/EsZ+JVmQLJuTJopdWtAcuiX78Ra jjyBJbAvoCWN7gO79j5/Lf5XSKW8IGU7RUDQIs4q3sIi/p2WkdDlKYf12n2+4ao3ySJK HaJA== X-Gm-Message-State: ABy/qLZXoYXdK4oe3RYYNFJQOINsawfEhzeo9S0fY3iP5qqzvdMFh8Fs c3CIUwjXm8I3ggdeIveBPNbVAv/52Y8GFyWY8Rk= X-Google-Smtp-Source: APBJJlGlHxRyNyhgZEE5VQhEpKE8Dnte26FH1K/UrL4l3cyC1ubSlkAlLkMMLs8utfzsY5Iee8xOtCxsPCzCEJxgISw= X-Received: by 2002:a1f:bf0c:0:b0:47e:30a:c7bc with SMTP id p12-20020a1fbf0c000000b0047e030ac7bcmr4427521vkf.12.1690798871539; Mon, 31 Jul 2023 03:21:11 -0700 (PDT) MIME-Version: 1.0 References: <20230731074829.79309-1-wangkefeng.wang@huawei.com> <20230731074829.79309-5-wangkefeng.wang@huawei.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Mon, 31 Jul 2023 18:21:00 +0800 Message-ID: Subject: Re: [PATCH 4/4] arm64: tlb: set huge page size to stride for hugepage To: Kefeng Wang Cc: Andrew Morton , Catalin Marinas , 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 81B9540005 X-Stat-Signature: su35kr1q5fbz8xe5smfcsjstdz9bbtch X-HE-Tag: 1690798872-288890 X-HE-Meta: U2FsdGVkX18Hm7w4x76kEJvHV2QA0GUrli4Dm6oGouRD1cfsMyzngpbMVOqr+K9O3DX6Cb1ff//xuTOAgXu12S/HoRVV/JQvRRtivLcdl/xBZqJiYIfPg3Um8D012WRKrZRIluOeO6UB91THv4duXIW68dD3N9owjd/IQN67HE/6SnLntXPGJQRwltZxxlGXPsL0T/2tZSuQExnnBZSTjQ3jHiTDJVXuHOMCrq3wiX6FMyOEpsa7SKTWIypTje208FHJnpGwcwIF/7Uur2haCR/tApOc3KkNP3HVdWinQguIJ3fO5sQsO2Ahk7rBIfTQ2T2vjzhocuiQc0JEdfcmh0UMwko98hao1V77VcKEK9nKPrcHn8DA2zXC6lUG6ZsbC/F6ZvQGgsC5yOpq0UZw8e+DC2TMe5U49WWweQQIMgaxJ2rraHfXD93fPUyuRsmPeqggjZULdBkMgJ7tQ9ncmTmrVDqQLLh069abJqTdQPgJvi2aYGbCF0IdOHqDGmYc7co4vSez3WFT6SICrbSDk155bLMUmkJ5Vn86jfSZI3VKDaCboT7QnV796hUf8zgfvx0wi+DCRoThBR9YPEONYid9xW3kA6hdLg9TzqZQszofNOkP07ozlLnB2bW7Co/NA3gIGR64MMe9To06SStpv16Ck8NG4Szqwav/ejw0pqekTs2gGJQ/fRmt5+IsB+eGVa47z4ngEkHUz89EU5M4XBTPD8KRUF8gH0ju5nVSV81Uza4gKroNPHI0/Vsd40gCEZbneR44XVAgtKfCDRtDX7TKT6hvpBFG5rsQAnvuAB/WRzqSKJ14HuLVtOUz1JwAkOAZmHJu8yET05AJ6oblP5Q8QRyUt1ozmj1x68kFEDzPSvlzqV15dEOhhe9hJzhs0sw0+swvFUpXdYWITOHb+cmo/f3qw77fyQ5WCI9WwJahOF4N37RccZBtthBEG7edYfyyl0YnS09FSu6ZeHh uNLIsTbq PYXuRGIB9NjhY+Twihub6+Dekw5iR9FqIgASwIkl5CF+h483dh9RS9GiyZMl5MbY/3LK3zK4DjjvQGojJ6dsirmYQOQAyO/euQGW7MkB3md5zDb/ZN0FlONNlep/OyO2IL3fjMYmc7K1uuB/mmrdVu9D4ZxnE+RVVRFH63zUYLhFNCYFdXOBx/1hnWr5PQgPY+AXJxMuJROxwytuh2rHUtONTG6MXgNNpNL5b7svy3uUFbBzZsI8gbOV/5BjFwOr4Zg4HOWg91jM6s6rLfEjgMBJzHKAL36Nd1SaDplJBoUuCfdvdEHtqvX6f5eBAaVqyuWBOe5pobop4bru+W/adO4ySCG6vVQv0lScJVjsEG4zoAfhcqVsAaW4H0EP22slsFKJMoCvcEQGhLT+hnI5/gk7+mg== 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 5:29=E2=80=AFPM Kefeng Wang wrote: > > > > On 2023/7/31 16:43, Barry Song wrote: > > On Mon, Jul 31, 2023 at 4:33=E2=80=AFPM Barry Song <21cnbao@gmail.com> = wrote: > >> > >> On Mon, Jul 31, 2023 at 4:14=E2=80=AFPM Kefeng Wang wrote: > >>> > >>> It is better to use huge_page_size() for hugepage(HugeTLB) instead of > >>> PAGE_SIZE for stride, which has been done in flush_pmd/pud_tlb_range(= ), > >>> it could reduce the loop in __flush_tlb_range(). > >>> > >>> Signed-off-by: Kefeng Wang > >>> --- > >>> arch/arm64/include/asm/tlbflush.h | 21 +++++++++++---------- > >>> 1 file changed, 11 insertions(+), 10 deletions(-) > >>> > >>> diff --git a/arch/arm64/include/asm/tlbflush.h b/arch/arm64/include/a= sm/tlbflush.h > >>> index 412a3b9a3c25..25e35e6f8093 100644 > >>> --- a/arch/arm64/include/asm/tlbflush.h > >>> +++ b/arch/arm64/include/asm/tlbflush.h > >>> @@ -360,16 +360,17 @@ static inline void __flush_tlb_range(struct vm_= area_struct *vma, > >>> dsb(ish); > >>> } > >>> > >>> -static inline void flush_tlb_range(struct vm_area_struct *vma, > >>> - unsigned long start, unsigned long= end) > >>> -{ > >>> - /* > >>> - * We cannot use leaf-only invalidation here, since we may be= invalidating > >>> - * table entries as part of collapsing hugepages or moving pa= ge tables. > >>> - * Set the tlb_level to 0 because we can not get enough infor= mation here. > >>> - */ > >>> - __flush_tlb_range(vma, start, end, PAGE_SIZE, false, 0); > >>> -} > >>> +/* > >>> + * We cannot use leaf-only invalidation here, since we may be invali= dating > >>> + * table entries as part of collapsing hugepages or moving page tabl= es. > >>> + * Set the tlb_level to 0 because we can not get enough information = here. > >>> + */ > >>> +#define flush_tlb_range(vma, start, end) = \ > >>> + __flush_tlb_range(vma, start, end, = \ > >>> + ((vma)->vm_flags & VM_HUGETLB) = \ > >>> + ? huge_page_size(hstate_vma(vma)) = \ > >>> + : PAGE_SIZE, false, 0) > >>> + > >> > >> seems like a good idea. > >> > >> I wonder if a better implementation will be MMU_GATHER_PAGE_SIZE, in = this case, > >> we are going to support stride for other large folios as well, such as= thp. > >> > > > > BTW, in most cases we have already had right stride: > > > > arch/arm64/include/asm/tlb.h has already this to get stride: > > MMU_GATHER_PAGE_SIZE works for tlb_flush, but flush_tlb_range() > directly called without mmu_gather, see above 3 patches is to > use correct flush_[hugetlb/pmd/pud]_tlb_range(also there are > some other places, like get_clear_contig_flush/clear_flush on arm64), > so enable MMU_GATHER_PAGE_SIZE for arm64 is independent thing, right? > You are right. I was thinking of those zap_pte/pmd_range cases especially for those vmas where large folios engage. but it is not very relevant. In that case, one vma might have mixed different folio sizes. your patch, for sure, will benefit hugetlb with arm64 contiguous bits. Thanks Barry