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 F136BC021AA for ; Wed, 19 Feb 2025 16:57:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7245C280244; Wed, 19 Feb 2025 11:57:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6D40E280242; Wed, 19 Feb 2025 11:57:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C24F280244; Wed, 19 Feb 2025 11:57:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 3F6F1280242 for ; Wed, 19 Feb 2025 11:57:45 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9DC891A1B61 for ; Wed, 19 Feb 2025 16:57:44 +0000 (UTC) X-FDA: 83137300848.01.57E79D1 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf30.hostedemail.com (Postfix) with ESMTP id EEAC480005 for ; Wed, 19 Feb 2025 16:57:42 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf30.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739984263; 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; bh=484kABEEN9UzTj0yt1g7K+VN/5gDwoSOVRqww0HWucA=; b=nVCtPzwRALjr0XvosroutzJEoXXduC9cLJZbpjtzF9GsGLXP7a+zueIRiT0NhZ6BWaTCbo 1W2DxKA887AnC6H5IfVhJXYzzlEPtb22DUiYfWMzfsJvo/AQC6+xkTtwCYMk3TaeSXV2bo btRfXy+oGZbblXGj32qbHSVyAj7AE1Q= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf30.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739984263; a=rsa-sha256; cv=none; b=LZdbXsNcmw/Dkk3/30IPV4lwDJzEfEQQGtDpFqjFnxELKdtX77YaksXSqoqU54G1Yp3q7l e0ji+oZUqywFpnAaPpCNCn/8rh1KmHbsvJCHU9BtXSmeuk9FSor1XZqU0U4KMxEeWjuGHP c1CTxTZTxyIhsyIiDfiPG4Tgym+72F4= 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 7B9E21682; Wed, 19 Feb 2025 08:58:00 -0800 (PST) Received: from [10.57.84.233] (unknown [10.57.84.233]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 509BF3F6A8; Wed, 19 Feb 2025 08:57:35 -0800 (PST) Message-ID: <754acd1f-09ae-4054-90c6-bdf7eb98ee70@arm.com> Date: Wed, 19 Feb 2025 16:57:33 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC v2 9/9] khugepaged: skip collapsing mTHP to smaller orders Content-Language: en-GB To: Nico Pache , linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org Cc: 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 References: <20250211003028.213461-1-npache@redhat.com> <20250211003028.213461-10-npache@redhat.com> From: Ryan Roberts In-Reply-To: <20250211003028.213461-10-npache@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: n5wmnndjqd8tr8uppmkjbyrht985ks9q X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: EEAC480005 X-HE-Tag: 1739984262-670802 X-HE-Meta: U2FsdGVkX1+JqlalZFBc6Y83l3pxhn3TyLT1+sOiCV0YDQw66n8diMfS5MbYZwi2dQw1Yp3sNY/oSe9u5dXKxZg3rvr0XltutGFtkibi1VonGWVnVoZB8uuGgb8w3KKmc55F2mz2NX5ZXFt9Qt6xUu+j/i+r4Lpv5KmsLj3hactUF9yH9Q+uVWHpLQhKk8ckUayjqmN3puqgkv1HQv6upez8N04UFd0bEOmHoAC9BCynjjhP0PqT4TEUBXcSRY5yU1dpUqCoIXdwXedJO3ob/BT3lOiWEXCdhNDOkZVvy3ik+EawKDgRN6PvGOmeuOX6Mr949j0JumKvnAJh2HmcViRn5tMtDn8QibQSAvYyJdB1ER+n796jMhIt4Pltgiz8GG+m/NrcDW4l8VBs4fUBah6Qs1CPosqj4Wc8/uT/Dz6g0U3Z9fZru+Eb6T+3f9vumijtVq+4iD4e7FAA6O5mM0omTHsYrxPY2DcejnxUNepeoH1yblrtWjjFyO/5Px5r503GxQfXZBaXgD2oYQOZS2aPiU/VoB4yXz3fczN5T1h+oo9UAUJJ8cGE7SVYKNNj5dOn3LHNXoysTm9ubtEqli9KGlPCrICezEODZtz+ZgkEaAxW6MUOOuwYGXix+Q8EN7UFtaKHNNuZqG/RbZPx/DC5dS72G2BsfaJN5lwu7Nre22MuyZGLiOgaxGAeqnlKmpIB6Kmb7WJlpCU9UBEJFNgYbjU33ifWhCjy7Iu9svgwZLz38QNvFwQUC63HxudgUSqYXKKjPL/Y4a4ppJYdMNueOJXDoXu2CLH/46EwV6Fy/haIQIoKZ1s306CdumGDiCopB0plgQIj2YVE5E9vZuTFcGpcl38p/wJeuPn+9bppeJCAi28/gKu61Aqla6JD7H3u3eETxjjN9yVBLrQHTTSGUDYMQtBSAC/2/nwp5i8hmQhlQUc7T1uCNz8BjxGB49B+tXCnkaEfLGaSXPG RqMf0Id5 aWWAiW3RRU7ahYbufPJWfHzlB7B7vYYjMwFC29TY8uo8R/p5HoW0vqCt+VPUptAy06TlCsxAaf0HviPmi9rUOpYN6/b/Wpd+2O8FKgRKzy6BhFesTU2UbNDiQy1b5TxWjsK4eeLbweKGHmjBZAeR9xXEDyyIp1o+UTquuHvQmfgxNfM5NdN9316xQ9w10ekBXg8aHy2ra9xbfjlzxs1Rc/zhf1v0ntgQszBr5FHa73sqENmFvFALxqDVeL2xjwz7YGiMSSC7nhz++zfrCwotG7+xm0DbVVsHQrqq2VgKR049oq7v6yfosEcIIue+sckXyNDzZ 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: On 11/02/2025 00:30, Nico Pache wrote: > khugepaged may try to collapse a mTHP to a smaller mTHP, resulting in > some pages being unmapped. Skip these cases until we have a way to check > if its ok to collapse to a smaller mTHP size (like in the case of a > partially mapped folio). > > This patch is inspired by Dev Jain's work on khugepaged mTHP support [1]. > > [1] https://lore.kernel.org/lkml/20241216165105.56185-11-dev.jain@arm.com/ > > Signed-off-by: Nico Pache > --- > mm/khugepaged.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index e2ba18e57064..fc30698b8e6e 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -622,6 +622,11 @@ static int __collapse_huge_page_isolate(struct vm_area_struct *vma, > folio = page_folio(page); > VM_BUG_ON_FOLIO(!folio_test_anon(folio), folio); > > + if (order != HPAGE_PMD_ORDER && folio_order(folio) >= order) { > + result = SCAN_PTE_MAPPED_HUGEPAGE; > + goto out; > + } One of the key areas where we want to benefit from khugepaged collapsing to mTHP is when a COW event happens. If the original folio was large, then it becomes partially mapped due to COW and we want to collapse it again. I think this will prevent that? I made some fairly detailed suggestions for what I think is the right approach in the context of Dev's series. It would be good to get your thoughts on that: https://lore.kernel.org/lkml/aa647830-cf55-48f0-98c2-8230796e35b3@arm.com/ Thanks, Ryan > + > /* See khugepaged_scan_pmd(). */ > if (folio_likely_mapped_shared(folio)) { > ++shared;