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 84F26C83F10 for ; Thu, 31 Aug 2023 03:55:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E72B58E0009; Wed, 30 Aug 2023 23:55:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E23068D0001; Wed, 30 Aug 2023 23:55:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D11CF8E0009; Wed, 30 Aug 2023 23:55:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C24138D0001 for ; Wed, 30 Aug 2023 23:55:09 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9608880410 for ; Thu, 31 Aug 2023 03:55:09 +0000 (UTC) X-FDA: 81183034338.08.E968BC7 Received: from out-245.mta0.migadu.com (out-245.mta0.migadu.com [91.218.175.245]) by imf07.hostedemail.com (Postfix) with ESMTP id A35154000C for ; Thu, 31 Aug 2023 03:55:07 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=G1qJF6nI; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf07.hostedemail.com: domain of muchun.song@linux.dev designates 91.218.175.245 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693454107; 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=M5ttZ6ggIxksvgixGRYxXupGBIp2Nf+x9zH0x4jn6+E=; b=5oeMeEtLT+tgRwKdCaqRzbZacFyB0lf3am429jmi5wekwtkvtRZxaqyIa4vHoI93Txkg5/ NtcQ/mw57QPuxrg+zjTm4HMHLOs5dLa6XfljYNEkoiW125q5bu2zF6AIA11j8u1//GHxTc gZEJGyRZj86SpeStIysq/EYC5waUuXA= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=G1qJF6nI; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf07.hostedemail.com: domain of muchun.song@linux.dev designates 91.218.175.245 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693454107; a=rsa-sha256; cv=none; b=M300RE9INNZOm9FkNGo3ztnjDxcbgvDubdtnl0dOt2cyhx+jmmummDiNAhWqywXJ516MmO i+tXRkL4yTyvFwbl10qBsHxpVCvyEn34f26wSFhHa8o67cD54NdLbx12njtMb2z1lukoYc mWsaFRT5or6ZcG7ofdo//TbiQbRvgzg= Content-Type: text/plain; charset=us-ascii DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1693454105; h=from:from: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=M5ttZ6ggIxksvgixGRYxXupGBIp2Nf+x9zH0x4jn6+E=; b=G1qJF6nIrNpnQbcGfM61fjDUQAwecbqLnDhnEp33tl8Uwdy04PdQV7MZpOP87jVIJfVkhk Xvh+eT5s6C8uVH7QGNnF8CJdA1yYSp9nw/bRzQ41Wp60hFF6OFUqwXH31nAKS4VCXyUKvv u+xDDeBgli2fvRMnC2F7ez2U4VVRagY= Mime-Version: 1.0 Subject: Re: [PATCH 10/12] hugetlb: batch PMD split for bulk vmemmap dedup X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Muchun Song In-Reply-To: <254b1ef9-376f-a47b-ee54-ea34b40b3f72@oracle.com> Date: Thu, 31 Aug 2023 11:54:28 +0800 Cc: Mike Kravetz , Muchun Song , Oscar Salvador , David Hildenbrand , Miaohe Lin , David Rientjes , Anshuman Khandual , Naoya Horiguchi , Barry Song , Michal Hocko , Matthew Wilcox , Xiongchun Duan , Andrew Morton , Linux-MM , LKML Content-Transfer-Encoding: quoted-printable Message-Id: <70844AE7-794D-475D-A660-F02EED4BA301@linux.dev> References: <20230825190436.55045-1-mike.kravetz@oracle.com> <20230825190436.55045-11-mike.kravetz@oracle.com> <254b1ef9-376f-a47b-ee54-ea34b40b3f72@oracle.com> To: Joao Martins X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Stat-Signature: s1xu3bfu815o1oak5fq7cbxuzhzeq8rx X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A35154000C X-HE-Tag: 1693454107-834566 X-HE-Meta: U2FsdGVkX1+uQGiIRBc85zC+c2fIfcyv6KOUefMorlXluQH9UH3wy+wCqP4Hov2d1ZENby9uEV6qfJsEt32M0k00xcw7a9f0sxPiML5Q2wTRBA0i+hUKz2GM6tlDe+FQdKJEodb1f/O5WIsupo8LVrPALzyL2pG9V7HuUrhbxTOd6my1yBLt6TZZuv3DtlJTKGaaMilqJcy52BIqwa80uq8rspUkoonhe5wLhVKPmpHM6zbeowfElzjze5ZWSiDdkwXPH8zMDZFPcWp/FTHySypeWmemzcUxCMwLn4F76V/onjkKTwMhLuq9yxEFFKMP4i3TYJTlv1U3nN1TGFot8kh8PAjhe4t1d9FEKYuSFNM/3Q/xn781x0v9KORe3N/ECFjk7e8FK9aj5nklv7VB5iPXKiLkllCS3uT83lPyQwItkCQYsHoSuzmpul6panYS9MNEdZgMn0+bsGlRC0rLSbIwKTiwznllNvopFcm2c7u53hfTMHhoedE7kTvJOsWfSQ6eDBjvIA1OgkD5/jTNmF34znWtBQAd5I2dkl2QCCMt7B1NLYXuwOxuUM8+c+C2JwAmPSnqcnlcYnDfshkibfe7WYfEQtHP1cdAS/6SZ3gXDxvzJFIl9kdZ0QzSILYEZUlWx+IyO4dDiO1dCUoJ1+71/Y+OuwUjM3gVdoOCp3B6DWAk+u9g/BQxyHHh5svLQdCX/6dgWquc1PoYwX370CW40RXMkH4tpmTNwHX0co9dNxMqItiRpxGjmQhYI5hRCP+RcvT2yGEvjnukX9zqncBURkxiBnM6xAClcsaIi7E8NhqkFRPBzdetK5lUz9ZpoHsZ6pLC7nE/5eaImuNnd5lBrlkMXTxS0urAvyv/Tch8Fiqx7lrpP8uf2vPZx6ZlHYjqbIGeGIPmrvdIhHeAztwK6D0Tah8BQDrPZgDUAyCYMpFTxM+ZwhFxwgCd/oSP+v4rsQDGCdRyqr5tuhY 0Ha+DjVJ zAn2lUDcpqPw2R9b28RLImhugUVbwPpvI56TxMfYb6jrHtrhEgXTnFDIuwoTwKtRhaUvm5dFfUd9buSGrihMlURRZsb7LRgol/dsMoitgc8bdev4hS8ikGi4zORomjKPm01b9eMegLe3H5AM= 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 Aug 31, 2023, at 00:03, Joao Martins = wrote: >=20 > On 30/08/2023 12:13, Joao Martins wrote: >> On 30/08/2023 09:09, Muchun Song wrote: >>> On 2023/8/26 03:04, Mike Kravetz wrote: >>>> + >>>> + /* >>>> + * We are only splitting, not remapping the hugetlb = vmemmap >>>> + * pages. >>>> + */ >>>> + if (bulk) >>>> + continue; >>>=20 >>> Actually, we don not need a flag to detect this situation, you could >>> use "!@walk->remap_pte" to determine whether we should go into the >>> next level traversal of the page table. ->remap_pte is used to = traverse >>> the pte entry, so it make senses to continue to the next pmd entry = if >>> it is NULL. >>>=20 >>=20 >> Yeap, great suggestion. >>=20 >>>> + >>>> vmemmap_pte_range(pmd, addr, next, walk); >>>> } while (pmd++, addr =3D next, addr !=3D end); >>>> @@ -197,7 +211,8 @@ static int vmemmap_remap_range(unsigned long = start, >>>> unsigned long end, >>>> return ret; >>>> } while (pgd++, addr =3D next, addr !=3D end); >>>> - flush_tlb_kernel_range(start, end); >>>> + if (!(walk->flags & VMEMMAP_REMAP_ONLY_SPLIT)) >>>> + flush_tlb_kernel_range(start, end); >>>=20 >>> This could be: >>>=20 >>> if (walk->remap_pte) >>> flush_tlb_kernel_range(start, end); >>>=20 >> Yeap. >>=20 >=20 > Quite correction: This stays as is, except with a flag rename. That is = because > this is actual flush that we intend to batch in the next patch. And = while the > PMD split could just use !walk->remap_pte, the next patch would just = need to > test NO_TLB_FLUSH flag. Meaning we endup anyways just testing for this > to-be-consolidated flag I think this really should be "if (walk->remap_pte && !(flag & = VMEMMAP_NO_TLB_FLUSH))" in your next patch. This TLB flushing only make sense for the case of = existing of @walk->remap_pte. I know "if (!(flag & VMEMMAP_NO_TLB_FLUSH))" check is = suitable for your use case, but what if a user (even if it does not exist now, but it may = in the future) passing a NULL @walk->remap_pte and not specifying VMEMMAP_NO_TLB_FLUSH? = Then we will do a useless TLB flushing. This is why I suggest you change this to "if = (walk->remap_pte)" in this patch and change it to "if (walk->remap_pte && !(flag & = VMEMMAP_NO_TLB_FLUSH))" in the next patch. Thanks.