From patchwork Tue Feb 11 11:13:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dev Jain X-Patchwork-Id: 13969517 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 4BF64C021A2 for ; Tue, 11 Feb 2025 11:14:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD17F6B0083; Tue, 11 Feb 2025 06:14:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B80986B0085; Tue, 11 Feb 2025 06:14:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A48506B0088; Tue, 11 Feb 2025 06:14:07 -0500 (EST) 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 8AFF86B0083 for ; Tue, 11 Feb 2025 06:14:07 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 175CCC1594 for ; Tue, 11 Feb 2025 11:14:07 +0000 (UTC) X-FDA: 83107404534.26.08FB200 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf23.hostedemail.com (Postfix) with ESMTP id 8B313140004 for ; Tue, 11 Feb 2025 11:14:05 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf23.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739272445; a=rsa-sha256; cv=none; b=IcJw2cEVs1+pww9IhG9dkfLXV1GEyTMBkEX2g2nASXMh0Id270gqn3rOm9McS42xR4aqe0 WnnggaRp5G/SCWzIBhjKk//1ZYKV76eEy9K8+0menV4mjd/ZIQjQ4rE72m/ru4gRTB5lPH wBxPmZHEVedOcMlPUzOaWzf18iZ65fo= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf23.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739272445; 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; bh=B7knzAimfj1pqFL9d20w6zGU8KuzzqWsCIiYDH8PVCg=; b=plv6sVSFHL9+aXF+6ZbNYxwtV05fq/xTkOtwGScnveodgaHnNhF74u/+KTSN+IrIx3d9kQ HOPENk2OWI63KA+D8XAIth3lZ5Krp7bkmj/cIR+npYTWFG7zFFdHwQN3KUi/uLlFWgECAL sy0g4d9qzGZBWBS3VNhRYtgWyan7jv8= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 556BF13D5; Tue, 11 Feb 2025 03:14:26 -0800 (PST) Received: from K4MQJ0H1H2.emea.arm.com (K4MQJ0H1H2.blr.arm.com [10.162.40.80]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id A73603F5A1; Tue, 11 Feb 2025 03:13:55 -0800 (PST) From: Dev Jain To: akpm@linux-foundation.org, david@redhat.com, willy@infradead.org, kirill.shutemov@linux.intel.com Cc: npache@redhat.com, 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, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Dev Jain Subject: [PATCH v2 02/17] khugepaged: Generalize hugepage_vma_revalidate() Date: Tue, 11 Feb 2025 16:43:11 +0530 Message-Id: <20250211111326.14295-3-dev.jain@arm.com> X-Mailer: git-send-email 2.39.3 (Apple Git-146) In-Reply-To: <20250211111326.14295-1-dev.jain@arm.com> References: <20250211111326.14295-1-dev.jain@arm.com> MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 8B313140004 X-Stat-Signature: qyxtxga73g16myz8167tauyjehsxwhgo X-Rspam-User: X-HE-Tag: 1739272445-975453 X-HE-Meta: U2FsdGVkX1/JYktB1EPnTISXNYuol/sJRTUAo3iOUpCvA7N7KTFRtI92ECxtPbaHtXe773dIt364FfPOmgsitSd2yNi5kFutDXa1NZZJhX0Jzeo4m8kGX9l8JuaNJNhye6xt+mNH/0RItwDBiQ5XnuCw9OyIRxMeWWimaLNDPI1/4rE8qwnXnxrEs3bGPOz0Cc0wZgWBWYRnZGrLhMVExzuuOHTMhSecb+EL3NybAmLoTRf8i6nh0q2PfMguIRe4Ggghwt1+eDx+2ZfatZ48JGzOoBbe1DiubrRV51yX379m5Z9/jOmgipCoOLQpz35eNuO9l/io13R2lCDAEjcT53XC7YXDjk4Oqg0nd5usgiqXOsMTZ4McJ8mh2nLaTcie+nmZitIs3+TOSjNEQ8UsJtAqVKMljPM1qvMxE64oBQPXsX8U8CqCg13uvV4ws9wOtf2ET04FD+hcxIjMgqoujoU6bVP018t69SOYvyXzPFlWqBVtL1z6X+oO210y7lGqkeasQVEZ9RCnv03RsP8lgwJg0BSYkGl2zR0W1+xaJFl6YUvn0U+OGCbv4XrG3a9nMKNEIdtKMYvxjC+BWAJB8cYRuaswdq4a854sQNACzwPV+7b2ZDjLTDFubv0BxbFsXyI3ZXPbAwLK+McNELwK7N7QQdXSQC4TWrquX737acmnCQKh5rXIpyU61w7Ugwd8/a07mQZsa7n/ARjINB4jcG1cLcrbaQjuvM5wFS2LUP9LSSlRDJ2rpCvfR0jl+jXEoL2NgxsWDcTlnFGq6t9uo1BLrgQiEKn669606fu2dBUM03tglaNxni7d9bWxVq6XDFSHziKP/M4LIeifzdYP1oXRcvjcU8alUm6zW5eHgPgrbXuMTm07MDTs4YI7BUv/C0RzgulwX5L4k+n9Kz+xVvrcTeiy4/+7jCjmzMTE/77Rde9xpqPvQn4XFG6StDBLrxOh8WoBuWCwUt+H/xT qS4OKjdL vTruaED2qOPXOuh2oc0dX8+LT1OZP4QIZE6cJtOdH2W9yVs2A9uftcysPMqmR66C2ckfPWghny1iXHwxyJ+5Qj5fVlmxFSvbx7aeUYliy73Zye8Cp6Wj/EncoXPDDRDyVi1fyxLzViNSKf6/qxUpi1lCuvCDcZBg3hlWCtd2c1nJTAB2DaPwMDY94G4Vl1FEQz/mK8v9k7yowe8pDgEu2Fcw2RECXcs9dZDWUBQyu8of7hruNEbNMQmHUx+hNbck4jebk01LLQ+1NpP13jQCrW5emSw== 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: Post retaking the lock, it must be checked that the VMA is suitable for our scan order. Hence, generalize hugepage_vma_revalidate(). Signed-off-by: Dev Jain --- mm/khugepaged.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 4342003b1c33..3d105cacf855 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -919,7 +919,7 @@ static int hpage_collapse_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 vm_area_struct **vmap, int order, struct collapse_control *cc) { struct vm_area_struct *vma; @@ -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 @@ -1135,7 +1135,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, HPAGE_PMD_ORDER, cc); if (result != SCAN_SUCCEED) { mmap_read_unlock(mm); goto out_nolock; @@ -1169,7 +1169,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, HPAGE_PMD_ORDER, cc); if (result != SCAN_SUCCEED) goto out_up_write; /* check if the pmd is still valid */ @@ -2779,7 +2779,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); + HPAGE_PMD_ORDER, cc); if (result != SCAN_SUCCEED) { last_fail = result; goto out_nolock;