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 B344BC02187 for ; Mon, 20 Jan 2025 02:15:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B8676B0082; Sun, 19 Jan 2025 21:15:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 368286B0083; Sun, 19 Jan 2025 21:15:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 230646B0085; Sun, 19 Jan 2025 21:15:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 0AA9A6B0082 for ; Sun, 19 Jan 2025 21:15:15 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 85F77B294F for ; Mon, 20 Jan 2025 02:15:14 +0000 (UTC) X-FDA: 83026212948.13.7C456DF Received: from mail-vk1-f178.google.com (mail-vk1-f178.google.com [209.85.221.178]) by imf09.hostedemail.com (Postfix) with ESMTP id A785F14000B for ; Mon, 20 Jan 2025 02:15:12 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lYL43Sgw; spf=pass (imf09.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=21cnbao@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=1737339312; 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=aSZVv0u5N77hcEFfR9QmSBhMw8DBuQt4yBGs8phmBss=; b=JEqP/ai+7a25wzLfQmV8XMAadkXVU8TUOA8V76NflYIeJKvTb1/2wMRql0r6twVymJnQrE Z7efUH69SNaa4ZvBwRnLfUg7JBmNkOMReISmp16ujIayz52vqbRCPpJ80H1c3Dv29jLfe/ ncSmQh+igbci5JpLJBdY0GN4ogZmtus= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737339312; a=rsa-sha256; cv=none; b=yq5aMlHFTbez/Yr5UihIQvywY6YD36cTAROkKJNwmNEewTIRuMDyYjq++oYPGjmQQK7Jh2 vsL2VnuVKyCsLouHlJIqMl5vUkjyS9MBhTWhsrRx84j/9SMPl+bE7x3Q9v97S58PcTuGM8 cWcdMPclAO3ZfQd1Z/OqJQAcOt0Pdk4= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lYL43Sgw; spf=pass (imf09.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-vk1-f178.google.com with SMTP id 71dfb90a1353d-5162571e761so1259223e0c.2 for ; Sun, 19 Jan 2025 18:15:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737339312; x=1737944112; 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=aSZVv0u5N77hcEFfR9QmSBhMw8DBuQt4yBGs8phmBss=; b=lYL43Sgw68m7LQIj7YleAGdo4iKOKP0yitYX8pTNUIycnxJzlV0vdYdlzdczKzZi6g G3gTD/Br23qUSnkEHQr9klmYpiUTzU/xfuAvaUqGwin7WQlZrw7R6WdCf5NT6LcxqBl7 tU0Y6DZk/E8Sx4ax02XZB+MqMQcFToDlDpoMB6cWkGwxXVDAWCrT/BGkMhSb5Dso0URT y+JES2/YTlAOICiR/aOLaDV8Keok7gm7J8SA4/N75NLdQq+zoNp5CLMhdz9+TEH3AxT7 wgghYghtUSVfG7m1OlsM+TS95wTyQppoUWz1XycNleNhAHRi6i9b41fqkOvmSxOS2VzA x9dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737339312; x=1737944112; 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=aSZVv0u5N77hcEFfR9QmSBhMw8DBuQt4yBGs8phmBss=; b=F3wJH1b66thxFmR35sWtpPk54h7nraD5zp6Qiv+jbkXe3PawrlRlJT6QnE6ijkJTeY QFaHfEa4wSLe39VDGpKGSEzrvjfmdbWtgvLiKXqT6tuD4Y/OJhxyxuF+H8ALVCgnz7iP kLlRWi2rl616O3JdcbU+PD/ZpWxL6w5jOQemVPTDZkZSooU9g/DBjd02JSjKmqTg6k0P VbSDzg6NBrAVmoAkRNd4ncmpV30kjZX464VPnpBFCuj/O9RMyD0I0857xCmqVkzqEbwm L0Y8Reni5+CvsiwFoW4WPJhzG4aJxmGfDC6OIjpvoH1aXBXJ7WJBiGYIla1xUHMgMokI xgkg== X-Forwarded-Encrypted: i=1; AJvYcCW78VQOQ2sxceVcnLPoEyIG64NpROWPogC1WmxTRsp603ZXlyxCiqP5PogCYRCoW8b2AGOG9JfAWA==@kvack.org X-Gm-Message-State: AOJu0YxY0aXD+0OiUQZjq7aLQIGs28q/Vy8LAkkNmAJYmj0PHh7qB7WK qqceKpzfbsDrTS0voxERgZd4+R/a40v4pll7W778zJuVpDnotTm9wc/iUGav1qfab4Nb9NG7kXx 5/jqHOt1BtP5YnOs4J8GFVl6Aob5b+OwFiiY= X-Gm-Gg: ASbGncuNHDqX3NFnc/3+ydAq+tILEmYGUW0j5M3Hd6Kb1hhleNycgKZXGd0L3RJXtKA kW8rhldUD1wE5KOYWCpv7fMi0eCvT3vHWx8rNGaIMQX22hygd3Gbr7Xhj9Dq3yC8LrcCBRi6RWy txO4OcXa6ruA== X-Google-Smtp-Source: AGHT+IE29WarxgrMwU23ILZPCifCILBiN3lw+j1jaNODPaFX5brOjP3CkVmlCpUk4+Iy8e4uTmsF+VnXNuXj0asrdrM= X-Received: by 2002:a05:6122:1682:b0:516:2833:1b8d with SMTP id 71dfb90a1353d-51d5b376e70mr7385473e0c.11.1737339311738; Sun, 19 Jan 2025 18:15:11 -0800 (PST) MIME-Version: 1.0 References: <20250120012230.3343-1-ioworker0@gmail.com> <20250120012230.3343-3-ioworker0@gmail.com> In-Reply-To: <20250120012230.3343-3-ioworker0@gmail.com> From: Barry Song <21cnbao@gmail.com> Date: Mon, 20 Jan 2025 15:15:00 +1300 X-Gm-Features: AbW1kvaRAe7s4Ihw2XaQXxfX6ayghaDlEi0NZn-laqz_F7nSDYdIZU5t9puOu5A Message-ID: Subject: Re: [RFC 2/2] mm/mthp: relax anon mTHP PTE Mapping restrictions To: Lance Yang Cc: akpm@linux-foundation.org, ryan.roberts@arm.com, dev.jain@arm.com, david@redhat.com, shy828301@gmail.com, ziy@nvidia.com, libang.li@antgroup.com, baolin.wang@linux.alibaba.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mingzhe Yang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: htbpx5zok536eickdfjg4ne3j77ox9fj X-Rspam-User: X-Rspamd-Queue-Id: A785F14000B X-Rspamd-Server: rspam03 X-HE-Tag: 1737339312-997741 X-HE-Meta: U2FsdGVkX1+0/Ub2ePGUJQwXobcgx8tuxodcB7x4g3Zkkhghv82QBpDLlsi4P0McL3rVNc3FUb5Ey3FbNBHMtZgRJV2tSwL79wn/6Cq8O8lMWqFoJdh8SzB2dJQEwtCB08UJ8u1fGZoz2EATVmq5NEDEnrZeR2iFWCLNjNG7AesqtWL1h3IBnkiz/NzSwNsT1FB4BR01yyOyyteNNoE6apQnVvWWgrvjhwLSMGVSJQqoCtWxyECDFg91381YcDVaCWPOq+SfBNQTAxaXyly6p+q38vh16Nz0ZkHraNgtDtoplsRYkDh/6nchcZcw0SUJ7SIctuUelmKqi13Vg4pOLQpfY3ROJtsm4s8pP37S92fqrAJOK4yQ5ifNjQtyMxUK6/KZf006A+BGP608hIxTuexz1F5uVnDJbMwbr7TYJEB5VBlIaw+KxHJQOEy76Gpw1OEAV4VdPVtw1qpMZe483oT8wraG74TRqDvQnYRbdVkPGNMrx0/k+cOdO723/CKSRry6D+F7Tajj2D50Fg0UeRGADDKuowzohfKE9uBc/Mdf6wmW/f4t0R8irB2cxuV1uXmRE/ZVv3wWOgbdWOAmALG6Ac8vtDjcJMDw9g7e3JRQcVKOLcwrY4m/6NhRqiW/RxiLMU708AlGi5n5vXXeXhQYYPuly/M5oaYjWsT45TsK5MdMjvMLoou/MJxjKESk1Dju4Rpp2dcJ/27WH1ZiFhHDCW33+wFmBnF2zUsqPD5zcyg4kSbQMbW5f+zD0JDMlrbyfLhZWLV+OzjdtcOir0qoCnDDhIYHgw2q2Kn+CMTwuFvZb1LlLUr4d9aB3bEKCjmFtRd4FkWNRcA8QqH0dqOoFXGk9jJCwBUUKYkjW8m9QlLxWxAbSSIW9YAPR2JQW38eQiTnRYjP2nSmTiG80g4eh49sjWExp0/aIecpBQhtZJjcfFH7fL3JULeSd3qRGtnTKvKK9qnJLlxrT8H cXaMYNTq I8QvU+4lO1jPQz1J40bCFXyVOWJ8rQdTMHBOmcEoou79JSHz9cmHJM19RSQnBwEMnMPBS/+uN477aulljOJO6BqRkqjT5tYXZqGY9yORkdlWjnRA9yfqwC+4tl28YlK7VBoazB3FcuzKiMqhMQ7N4P9Yen0ftgNjBgv7qCYsy3g4Fh40SwzeQNn8jArT8KK4F1IxOQ8UKYutIH/B28yZ48u3RGQ0B/4NC1dgLz9yfhcz10I0M9Ygr9tSW+GLEoT6bTUVxjrhWFwFB1GuESL0n+OdwbPPxPxD5f/kjVEuu0VvgIBJDgfall5KyOL+S9ZrQxNtA6qN0C8zu5uDWU2e/l9uy4NSWCEN/cZWGH0JduKRgrF7nMXRZTguPlSuIz864ILyV+nxUhPA+EKXuNRQnZ3s0NQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.008205, 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 Mon, Jan 20, 2025 at 2:23=E2=80=AFPM Lance Yang wr= ote: > > Previously, mTHP could only be mapped to PTEs where all entries were none= . > With this change, PTEs within the range mapping the demand-zero page can > now be treated as `pte_none` and remapped to a new mTHP, providing more > opportunities to take advantage of mTHP. > > Signed-off-by: Mingzhe Yang > Signed-off-by: Lance Yang > --- > mm/memory.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 4e148309b3e0..99ec75c6f0fe 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4815,7 +4815,8 @@ static struct folio *alloc_anon_folio(struct vm_fau= lt *vmf) > order =3D highest_order(orders); > while (orders) { > addr =3D ALIGN_DOWN(vmf->address, PAGE_SIZE << order); > - if (pte_range_none(pte + pte_index(addr), 1 << order)) > + if (pte_range_none_or_zeropfn(pte + pte_index(addr), 1 <<= order, > + NULL)) > break; > order =3D next_order(&orders, order); > } > @@ -4867,6 +4868,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault= *vmf) > { > struct vm_area_struct *vma =3D vmf->vma; > unsigned long addr =3D vmf->address; > + bool any_zeropfn =3D false; > struct folio *folio; > vm_fault_t ret =3D 0; > int nr_pages =3D 1; > @@ -4939,7 +4941,8 @@ static vm_fault_t do_anonymous_page(struct vm_fault= *vmf) > if (nr_pages =3D=3D 1 && vmf_pte_changed(vmf)) { > update_mmu_tlb(vma, addr, vmf->pte); > goto release; > - } else if (nr_pages > 1 && !pte_range_none(vmf->pte, nr_pages)) { > + } else if (nr_pages > 1 && !pte_range_none_or_zeropfn( > + vmf->pte, nr_pages, &any_zerop= fn)) { > update_mmu_tlb_range(vma, addr, vmf->pte, nr_pages); > goto release; > } > @@ -4965,6 +4968,10 @@ static vm_fault_t do_anonymous_page(struct vm_faul= t *vmf) > entry =3D pte_mkuffd_wp(entry); > set_ptes(vma->vm_mm, addr, vmf->pte, entry, nr_pages); > > + /* At least one PTE was mapped to the zero page */ > + if (nr_pages > 1 && any_zeropfn) > + flush_tlb_range(vma, addr, addr + (nr_pages * PAGE_SIZE))= ; Do we also need mmu_notifier? mmu_notifier_range_init(...) mmu_notifier_invalidate_range_start(&range); By the way, this is getting much more complex, but are we seeing any real benefits? I=E2=80=99ve tested this before, and it seems that zeropfn-mapped anonymous folios are quite rare. > + > /* No need to invalidate - it was non-present before */ > update_mmu_cache_range(vmf, vma, addr, vmf->pte, nr_pages); > unlock: > -- > 2.45.2 > Thanks Barry