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 10EACC83F1A for ; Mon, 14 Jul 2025 00:35:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FDCE6B0093; Sun, 13 Jul 2025 20:35:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 95F236B0095; Sun, 13 Jul 2025 20:35:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 827576B0096; Sun, 13 Jul 2025 20:35:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 611EB6B0093 for ; Sun, 13 Jul 2025 20:35:09 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1C32D1DA011 for ; Mon, 14 Jul 2025 00:35:09 +0000 (UTC) X-FDA: 83661000738.28.DB34E27 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf13.hostedemail.com (Postfix) with ESMTP id 8BFC220011 for ; Mon, 14 Jul 2025 00:35:07 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H+9+zFYV; spf=pass (imf13.hostedemail.com: domain of npache@redhat.com designates 170.10.133.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=1752453307; 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=BY0uq/JwVuLAVo6hhpefEsrpjrJB6SfsaEu6VQnxYkM=; b=SDAI9BIEKU/3rf6kfL3b5hiS5mP1x323GKzWC27PMBzJUpfCkHKX9KyCwTs25d4zDZZHUr rgSh5/8G/K6Qy7KMTQLHYeyuLsvf8d06tRwHrREjt6XaKkCjifFGQdXYGhBlR/nS+RxTiX Zu36dHaTwh8q+F90OcocMrAKSEtAIsM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752453307; a=rsa-sha256; cv=none; b=vHgLpLSUEDci0Z0LDj/DVJFmOuaPRcwnGjTNgB70LVAbzd0fo6uxeCn+sFH0RdhgvPTxKM J459ACr+kKNVnYSwpjjcpOfojGQVh56uGcK5HNg5MfFn4Jbqxc0smfIxRGxN7bFPELNE/C W8MVGqHOuSy2UsJ7ZJUEv0iP/sOMkfk= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H+9+zFYV; spf=pass (imf13.hostedemail.com: domain of npache@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752453307; 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=BY0uq/JwVuLAVo6hhpefEsrpjrJB6SfsaEu6VQnxYkM=; b=H+9+zFYV3T4wV8i7Qo8XmwBHQeae/u8/0fMbrcLENhwSbWyRpZdUUzq94jg1YXTuuZQvnu b/K6+V0ilqwHNYzpjrgenO3k15Qqxw9CJBxaz6hA1mN2ubbiEkp1zry49cy+n/P7qavilq wkSBRontppc7PFb2O1t6FWbs6jpIJDY= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-486-vOWgCFvjO7-Cger7x3lYig-1; Sun, 13 Jul 2025 20:35:05 -0400 X-MC-Unique: vOWgCFvjO7-Cger7x3lYig-1 X-Mimecast-MFC-AGG-ID: vOWgCFvjO7-Cger7x3lYig_1752453301 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (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-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3302A1800289; Mon, 14 Jul 2025 00:35:01 +0000 (UTC) Received: from h1.redhat.com (unknown [10.22.64.9]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 789A730001A1; Mon, 14 Jul 2025 00:34: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, hughd@google.com Subject: [PATCH v9 10/14] khugepaged: allow khugepaged to check all anonymous mTHP orders Date: Sun, 13 Jul 2025 18:32:03 -0600 Message-ID: <20250714003207.113275-11-npache@redhat.com> In-Reply-To: <20250714003207.113275-1-npache@redhat.com> References: <20250714003207.113275-1-npache@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Rspamd-Queue-Id: 8BFC220011 X-Rspam-User: X-Rspamd-Server: rspam09 X-Stat-Signature: rrq6wik3tpqnbzc1m7xffs1gidp35ezf X-HE-Tag: 1752453307-838464 X-HE-Meta: U2FsdGVkX187wxWkd/YImLUoykuyyzUdtUzwFBGcoE3o6+waRgJcaF/fNKoHwqSR9yRw6lpXrmP0lF9DVBbcFcc+ifnVubyqQzhbPjWVIfN8edkeLSweFJsvDOSZ7JO9wq5aNktysdVMqj+7H5Gnd2ntWEA7OJEMbucHPNPD/XcPMd3uz6UeDnE8uQO9fNy47uV7VNLUSUnac3rmrlF9l7kY51/qFMIImRdJbIkMmc9hR4MOlL8cIg89eOtE3xFqXDjtTtJ/4V4M+zTN/jwyJeUPacLOYsq1dj9iTfaRiKs3/V9PPNjUw1pzEp7cur+I5GUDwbx4a6bA7ErRf/bSQOZmpwIRbV6XhqqaHYsrdX9gTe0FGuYxt1NG5EiKU0QrjGvDus1rHGzP+ZzFlXsmH1zCMAhjwaOIb8tGr3f6q79DFYrR9uUr47YYYgNxs5a2AfNCkZeMX8tO9Fld+D8owq+oaYzketdAVFuEvnuAna+zt9BdEhTzROzLtPfjeeqrJxu23jiTcp+dwYtnF8EOJUSARYxloGQb1aCBvwhckowLLV++jZFYIvdGV4558IdZVAOXYQloEmxua/iUYuTjF9k8ybhhpXW41XY+KyY6cQVkChqgqqvtfAXqMwEZGMgzrYiCXaNO2Vvt0BCbb5m/H1shuFjSurujhT3bVROsIihnS0qx/IFXn8Rh+gv19Wsjcfvo3LclhdAWTuwd5w2FRarVogXmblp2yvO1XJ//YsZWyYnfEbitaNlhr8sIzz61v/HuG+bl3dIdlW918OXJetTJBWt8kFJwj20wqiG2N3YccialUvjfnuqP2xYVQdRhCNLL1zPgP/OUXxD1DZ2Ys8wyv1uJM+daIcApOahCTNFm/NYjbiN7tX2U3MQOw5ZW+k0/tUKHxRHfZ9Um0zQR6YBN7uFAnuwZPR30dycOUbNaU+Nq3SRaiWYc3Qk1+rsZ60LttsKuteNUjon2kwJ 0P2yh0o6 N07YQOGKKW+CP5V+95G9TG7wS1wUQQAKSmVkdx15IEcxS+lHYyuYVTthoRw7v86D9yDPPGVGXcn480FKivAkzPABJtJhTpnafPxt39veB6qptxhmDYblr5tdBKMGFp7lfZorP 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 7a9c4edf0e23..3772dc0d78ea 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); } } @@ -2624,6 +2627,8 @@ static unsigned int collapse_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(); @@ -2631,8 +2636,8 @@ static unsigned int collapse_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.50.0