From patchwork Tue Feb 11 00:30:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nico Pache X-Patchwork-Id: 13968637 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 7B536C02198 for ; Tue, 11 Feb 2025 00:31:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 07A2728000C; Mon, 10 Feb 2025 19:31:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 02947280008; Mon, 10 Feb 2025 19:31:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE5E428000C; Mon, 10 Feb 2025 19:31:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id BFB39280008 for ; Mon, 10 Feb 2025 19:31:45 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1B9F8C08AA for ; Tue, 11 Feb 2025 00:31:45 +0000 (UTC) X-FDA: 83105785770.25.5F4476A Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 3E5D540006 for ; Tue, 11 Feb 2025 00:31:43 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=KQdZdTio; spf=pass (imf07.hostedemail.com: domain of npache@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739233903; 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=rzjDVzZllkv1t501JGBPBZlzucpspDJXSDj68ZE8hcQ=; b=cFLT4YfZnMG59XlYRbrwht6+qJqFcs7P6shDmrBGXyfuU8R100+N+RHNx5y0LeJKuB3NyL XA2I8zn0Wp/CLS5UsOrLLadIcj4Pa2Gq63hrJXSqfAETvzSirNEDMKFxOzArQdwmtL6Zol qWhPg6Fcv/KqkYePRoo1U839chpycVs= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=KQdZdTio; spf=pass (imf07.hostedemail.com: domain of npache@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=npache@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739233903; a=rsa-sha256; cv=none; b=LlE23gVN3v0UnLzo2ljl44bfriHi1m+C8VDcO6aU6v4mABRzMYSJ2pb4Gep+UtITUzZa1H nQX6PwRzwokXeRAFxLQjXrgeRBX+ZxPBVjJWOnTtlR81pBXlFJZNSHcHwFfNxPBwpgTihm 48eEnoVyOCdISI9ganfDnKxOutMg0Dc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1739233902; 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=rzjDVzZllkv1t501JGBPBZlzucpspDJXSDj68ZE8hcQ=; b=KQdZdTioTInLOA5xotaReWGAL432ABFSmqxvD0YHsKEdZ6C/fxXgONgiY3zcjESvFCSF71 VticZsobbvhVEC+mH3/xWBlG4Vveh0UOxzaeCwPCwOfRvgsH6ZDgjo8kg3vcd438B12BO/ tfsb9oGM9me6xfxrqdiEwgOxUiUIGME= 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-488-OM9rMKLZPIuLmOGLavR4PQ-1; Mon, 10 Feb 2025 19:31:40 -0500 X-MC-Unique: OM9rMKLZPIuLmOGLavR4PQ-1 X-Mimecast-MFC-AGG-ID: OM9rMKLZPIuLmOGLavR4PQ Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (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 735BC1800873; Tue, 11 Feb 2025 00:31:35 +0000 (UTC) Received: from h1.redhat.com (unknown [10.22.88.129]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 4FABA180035E; Tue, 11 Feb 2025 00:31:25 +0000 (UTC) From: Nico Pache To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org Cc: ryan.roberts@arm.com, anshuman.khandual@arm.com, catalin.marinas@arm.com, cl@gentwo.org, vbabka@suse.cz, mhocko@suse.com, apopple@nvidia.com, dave.hansen@linux.intel.com, will@kernel.org, baohua@kernel.org, jack@suse.cz, srivatsa@csail.mit.edu, haowenchao22@gmail.com, hughd@google.com, aneesh.kumar@kernel.org, yang@os.amperecomputing.com, peterx@redhat.com, ioworker0@gmail.com, wangkefeng.wang@huawei.com, ziy@nvidia.com, jglisse@google.com, surenb@google.com, vishal.moola@gmail.com, zokeefe@google.com, zhengqi.arch@bytedance.com, jhubbard@nvidia.com, 21cnbao@gmail.com, willy@infradead.org, kirill.shutemov@linux.intel.com, david@redhat.com, aarcange@redhat.com, raquini@redhat.com, dev.jain@arm.com, sunnanyong@huawei.com, usamaarif642@gmail.com, audra@redhat.com, akpm@linux-foundation.org, rostedt@goodmis.org, mathieu.desnoyers@efficios.com, tiwai@suse.de Subject: [RFC v2 3/9] khugepaged: generalize hugepage_vma_revalidate for mTHP support Date: Mon, 10 Feb 2025 17:30:22 -0700 Message-ID: <20250211003028.213461-4-npache@redhat.com> In-Reply-To: <20250211003028.213461-1-npache@redhat.com> References: <20250211003028.213461-1-npache@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 3E5D540006 X-Stat-Signature: gfqehiaae9skp1sa5nefzmdfbhrbnks8 X-Rspam-User: X-HE-Tag: 1739233903-577433 X-HE-Meta: U2FsdGVkX1+cfEduzmvhoEUuKni+0br0YXk5EmRHdOjD6oDum30zkpnFCDjHpDVQGB8mIpQKP4YNp+7V20p7vtbfQ8Nbci+KVyyD4LGoDxhvbCN+WIFxlKMvMo7Sq8uD0e/6F7IV54p67xqJQDaF2aaCnXEzYvrWmn/4mbvhglw2O9hlclmbbGxxNvIi4Fs2bZnX31Jjol7+wXedRkFj6uCEAHEwRyZSHz4ARllH9LhkkgaAhO8O/ccBAhljn5NY4RyYTZ1/klybrVGznDKYFLhtSojjNZbMM/Y4kngVpro36BO5t/401MC4kQcM6MC/H558otWk/wKnVJ/peKkd0OMwSeyCu5pTJnXJgL8UKj3rri0b+67aypj3ap8EeLqZryRt5B+HCiQ3nY+JARSBRdhH2DcL/uOGLMAvWUwWV2h5RHd4UrPVACD0K14ZBMWm8NbwWKjMKoYXwZhnPnDx0K3SzQDwGm8GGjpT2Hc0ZSik3BwetmaA74gwNup5pDL96bRa0Gn5XSARGcuGFI1v2qDP9xz0dMDry9Ktkh7JHQxpaSAOBy5qu5sMUAd0m6DjwGeQTuTWtoELNbi7S7BfP60H0k56PPGM2/RJzoiLZUHX7b5vgCDCT63Dn51NHx3yG/Wr+xe22QGcioGdYkf3XsUAnK362DpEDjq/AGGZI2fxrBpaCbYgV5nZIf0CCEMCdGq/AYRTpDkfPK+Dkm875ybAavLHaFzPbRlbLW+8gnR5aokemuy3M4PGy4dMnERf2lENve21v7p9jnGgVPSaWArh+KxVVkqhbTge6P06WXxIaFkgEULg4fUgwh4Zt3mUplepu2UwhHXMrlLN536fodOwk2KAKEkoAW4LyIRIHNF4WA31FrXdvMd6DkKsajYpKRkx8WOGRT0WDSbd+LFSHeRNmJS4azg8CCc60hYIgUBeGUD3YpllvSZZjeZSCMkuqAFphaUgMFFJ/a72T0S qsAs5Yl1 d0Z3z9rptkroD8xRdga0/0YMOq5Ad91jQQXL3wZd7rV82m7PmYBbBgDlRhV7CiAlmovcvcvdikGJ/Z3fN6V12DUThyrMnjB7IQndyi0LsJ4bR3zt9ZZ3gVQyaSlp3QjgZeWb+BYqVIe3pYiX0avGwkh59hfCrFyxzcds4gkeQcFsMNlL80odBP5tgRPKtAvLuL4zLS2LVog4rDLS4FvdPdzCcUq98ffgEQZ0klpzHseFs1WBM1i5E2T7/h0XqiJ+TzKqAQvqrLXrRwZZZPxKXXrzghxsXGykF098dFt7Gf+qdScoFN4o8N2YjJeBx2sxjiynSYIW2jD9WRbwcBT7yYXKzBJ5lw2JTt7RxCB1zWpdBqM7GdcE9t5vzJr4ixCjBEt2GBKcPC5ORs809Sl0nTm0r2Gd+Wew/HO+zc/UtKK+ybN9VKVk0fGWHUJ87pDC5KME4 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: For khugepaged to support different mTHP orders, we must generalize this function for arbitrary orders. No functional change in this patch. Signed-off-by: Nico Pache --- mm/khugepaged.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 4c88d17250f4..c834ea842847 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -920,7 +920,7 @@ static int khugepaged_find_target_node(struct collapse_control *cc) static int hugepage_vma_revalidate(struct mm_struct *mm, unsigned long address, bool expect_anon, struct vm_area_struct **vmap, - struct collapse_control *cc) + struct collapse_control *cc, int order) { struct vm_area_struct *vma; unsigned long tva_flags = cc->is_khugepaged ? TVA_ENFORCE_SYSFS : 0; @@ -932,9 +932,9 @@ static int hugepage_vma_revalidate(struct mm_struct *mm, unsigned long address, if (!vma) return SCAN_VMA_NULL; - if (!thp_vma_suitable_order(vma, address, PMD_ORDER)) + if (!thp_vma_suitable_order(vma, address, order)) return SCAN_ADDRESS_RANGE; - if (!thp_vma_allowable_order(vma, vma->vm_flags, tva_flags, PMD_ORDER)) + if (!thp_vma_allowable_order(vma, vma->vm_flags, tva_flags, order)) return SCAN_VMA_CHECK; /* * Anon VMA expected, the address may be unmapped then @@ -1130,7 +1130,7 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, goto out_nolock; mmap_read_lock(mm); - result = hugepage_vma_revalidate(mm, address, true, &vma, cc); + result = hugepage_vma_revalidate(mm, address, true, &vma, cc, HPAGE_PMD_ORDER); if (result != SCAN_SUCCEED) { mmap_read_unlock(mm); goto out_nolock; @@ -1164,7 +1164,7 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, * mmap_lock. */ mmap_write_lock(mm); - result = hugepage_vma_revalidate(mm, address, true, &vma, cc); + result = hugepage_vma_revalidate(mm, address, true, &vma, cc, HPAGE_PMD_ORDER); if (result != SCAN_SUCCEED) goto out_up_write; /* check if the pmd is still valid */ @@ -2796,7 +2796,7 @@ int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, mmap_read_lock(mm); mmap_locked = true; result = hugepage_vma_revalidate(mm, addr, false, &vma, - cc); + cc, HPAGE_PMD_ORDER); if (result != SCAN_SUCCEED) { last_fail = result; goto out_nolock;