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 88F6FC7EE30 for ; Wed, 2 Jul 2025 06:01:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B1846B00B7; Wed, 2 Jul 2025 02:01:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2620A6B00CA; Wed, 2 Jul 2025 02:01:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 157A56B00CB; Wed, 2 Jul 2025 02:01:15 -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 03B366B00B7 for ; Wed, 2 Jul 2025 02:01:15 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AE30D14075B for ; Wed, 2 Jul 2025 06:01:14 +0000 (UTC) X-FDA: 83618276868.10.27D7B22 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf21.hostedemail.com (Postfix) with ESMTP id E60811C000E for ; Wed, 2 Jul 2025 06:01:12 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=I9E93vmT; spf=pass (imf21.hostedemail.com: domain of npache@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751436073; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=raAG5xPTJbhWGRq+uqBJOcAkRPs8VPHBCr9uCuWQi40=; b=EZThkjZ2UrpwNo4Kl62A4rXiJT+b1GHr8Vf+/Sx36NKo2xHw3ag7+z/binGBavtfegBe0U vcEqNV32dYg9J9+cm+FediqEcDIHBMq2H75Rch2ejfxgzGYSu1sgy1+9TQh0RSY25wfU19 YLzHeqcRAI+fOeRtf72VngVmAc27UUQ= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=I9E93vmT; spf=pass (imf21.hostedemail.com: domain of npache@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751436073; a=rsa-sha256; cv=none; b=2t/smEmuyGhUrxADf9hxL7jAlyEXkGGQ3K+GUp8RFJWH7InGWGa7Oj0Rd+Y7at7RoQcAPt wBOAeu/U45zL6svkPCd72oyeIOUDyn7SHi9BOjT6kC7tEAjirubG7IXdHUN0xEvKPeUlGb v2NEKnfdzHMEB94VxUJ6yohRps1R89o= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1751436072; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=raAG5xPTJbhWGRq+uqBJOcAkRPs8VPHBCr9uCuWQi40=; b=I9E93vmTQDkYpubVV/JVbxvoTAXniC1/Fvci/WDeEQTNVIAeAof9b3HF4q4V+dFHLaQ6JU DLPB93mK2U8sXPGdf/KylZKW55rieZO6twY9IBEv7kZ52XmVSL9r9Vp/nWPihtrLjlSEh9 wFbjrjA9wJpHBJ9vV0YAxPu0NGDVmxg= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-117-kIqpZ7gwN_eHr4aMxsfPug-1; Wed, 02 Jul 2025 02:01:07 -0400 X-MC-Unique: kIqpZ7gwN_eHr4aMxsfPug-1 X-Mimecast-MFC-AGG-ID: kIqpZ7gwN_eHr4aMxsfPug_1751436063 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A5862195FCCB; Wed, 2 Jul 2025 06:01:03 +0000 (UTC) Received: from h1.redhat.com (unknown [10.22.88.112]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E842318003FC; Wed, 2 Jul 2025 06:00:48 +0000 (UTC) From: Nico Pache To: linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: david@redhat.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, ryan.roberts@arm.com, dev.jain@arm.com, corbet@lwn.net, rostedt@goodmis.org, mhiramat@kernel.org, mathieu.desnoyers@efficios.com, akpm@linux-foundation.org, baohua@kernel.org, willy@infradead.org, peterx@redhat.com, wangkefeng.wang@huawei.com, usamaarif642@gmail.com, sunnanyong@huawei.com, vishal.moola@gmail.com, thomas.hellstrom@linux.intel.com, yang@os.amperecomputing.com, kirill.shutemov@linux.intel.com, aarcange@redhat.com, raquini@redhat.com, anshuman.khandual@arm.com, catalin.marinas@arm.com, tiwai@suse.de, will@kernel.org, dave.hansen@linux.intel.com, jack@suse.cz, cl@gentwo.org, jglisse@google.com, surenb@google.com, zokeefe@google.com, hannes@cmpxchg.org, rientjes@google.com, mhocko@suse.com, rdunlap@infradead.org Subject: [PATCH v8 10/15] khugepaged: allow khugepaged to check all anonymous mTHP orders Date: Tue, 1 Jul 2025 23:57:37 -0600 Message-ID: <20250702055742.102808-11-npache@redhat.com> In-Reply-To: <20250702055742.102808-1-npache@redhat.com> References: <20250702055742.102808-1-npache@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Stat-Signature: 3wudt8a8s9doisxp37iss4pb1r37ongf X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: E60811C000E X-Rspam-User: X-HE-Tag: 1751436072-186995 X-HE-Meta: U2FsdGVkX1+oGXCwKPPQPsgusAlQu9zRkvA+ZxznXgapkd9JM8uqYHlXkf7Jaq/pLSBQEcI4MhRGONHkuVuB4GqeX95L0oMNIWok7L+Kjj904CYjt7LFGZHhgahPaSFsRIty/KLjrWcDj5vjEwTA+MExC8rj5w/So6zHi7iu/XmfLhR5SCRYXLpbaC8pusMqf8QmmKPNSJMAU1P7d8hYUzxu/uzwklafJNInTbu93hc/r+97hrHItYW9zVOOsfYEuXS3uR9sDVad9uExMyes1v1EI0KKikOtnoTmrfBzP7+a03joXI54MgpeziIg5egHY1rexxsm1FlBezl1a6gd8vr2d3+qAo58N2jdSHv7xCemrP191N61iIo+kS6GGWcXMngfIWnkGQXb/r5JWYqRSr5jnpUzAotN2WeXJmGNz5X18/259+DgLKsndZQjRf9xPe6FYsc5Fa7NIy9Nuw75bpujLM6pkoA2VNP8PsGhBPw5WpPbXntfqwHe3iP+eWw8Z3rNTZbzPIPZs2S7fBcuWezmrYE027WrPdq9t6cfS6SKIkXenKFLUxPOjQhf9bT5hUx815UHC5lc2HuO4Ty9Jbe7+Hqfgaovlk96Bz39vmOdQWNY+iIPIdclQqQ90kW5H3ICLzRFs6Rn1BByII9x0qwyjWdu5YpKb51/W+yskHPdxB6BYE25kVo3Tif5GlMYWV0zJrwAZKAfIgCftS2c3pQcO523zBQ9dv+5wGlRPN6sYFg60tARTZ9AZ7nDwKXqzN2CmT3zfU0yoyHYDgtrofNDGrcYK4SgQPvudF4v2nqmIlx3J52jE2byu79+SJMRSKlJdkSA35Ib4Q0geLuEHWlmRnQxM2zpDT8m2+Jiuik/olNVPPC2R0GqzJaySlKXumNHabVSvq4kA0qSLwcS2yVp5J9xQAPd0RF8RocK2CrghMqdMDkkesLnUa33LRp5e3SzGqbrHvEK6wx+npk gCK6Ixmd 1yZw9bLGKTwYDgmdxt3ulCH15bK1YJyEZ59FrZ5U7UmCopvTGL3N1+3EfZBTE4i2egue4W5Zo8C40NQEZ2L5VIqamzk/uWRfG0yT9oP8pBJos8l470nKE4SrDQBV3K5y7H/U+Bg0oMLLp2rvuMhCG5Kdsv10gg8hwg7J4Ern2zgQA+MgwML2Q0s3XiCAaYIp1kcMGM116iUpLHv+q1SAxgbE2dfAw0Qw6+HvxFPJD/cYlu9qXCbkbbmFLJzr/2m+ieY4KJYaStFtrdX0QsM4w3DT1eCvk4csWfqfkTCYsohwSKZhj5M8w0pbX1Xvjp/K3+cxLlJf82WyZizKv7FXEkxA7SzkAUlcCLj/O/2xW/QIjUnN0czNADT3hrUUPEWKtH7Dflh6YB72X/w8d7RQrXRarkY0ctww7FeZT/TYLqVNCVRA= 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: List-Subscribe: List-Unsubscribe: From: Baolin Wang We have now allowed mTHP collapse, but thp_vma_allowable_order() still only checks if the PMD-sized mTHP is allowed to collapse. This prevents scanning and collapsing of 64K mTHP when only 64K mTHP is enabled. Thus, we should modify the checks to allow all large orders of anonymous mTHP. Signed-off-by: Baolin Wang Signed-off-by: Nico Pache --- mm/khugepaged.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 50e1d7ef7e6d..b96a7327b9c0 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -491,8 +491,11 @@ void khugepaged_enter_vma(struct vm_area_struct *vma, { if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags) && hugepage_pmd_enabled()) { - if (thp_vma_allowable_order(vma, vm_flags, TVA_ENFORCE_SYSFS, - PMD_ORDER)) + unsigned long orders = vma_is_anonymous(vma) ? + THP_ORDERS_ALL_ANON : BIT(PMD_ORDER); + + if (thp_vma_allowable_orders(vma, vm_flags, TVA_ENFORCE_SYSFS, + orders)) __khugepaged_enter(vma->vm_mm); } } @@ -2612,6 +2615,8 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result, vma_iter_init(&vmi, mm, khugepaged_scan.address); for_each_vma(vmi, vma) { + unsigned long orders = vma_is_anonymous(vma) ? + THP_ORDERS_ALL_ANON : BIT(PMD_ORDER); unsigned long hstart, hend; cond_resched(); @@ -2619,8 +2624,8 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result, progress++; break; } - if (!thp_vma_allowable_order(vma, vma->vm_flags, - TVA_ENFORCE_SYSFS, PMD_ORDER)) { + if (!thp_vma_allowable_orders(vma, vma->vm_flags, + TVA_ENFORCE_SYSFS, orders)) { skip: progress++; continue; -- 2.49.0