From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53383380FCC for ; Fri, 12 Jun 2026 10:09:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781258952; cv=none; b=LPqSYKtd1sWyUMq0ptoiykBMNIpypY1QuzAXLr4kdJc1iazVU4QeuY0oyTSraqafqfAqDudXO5hQx0pquMgn/g1IV9HPEBD19UFikuZTWm9j2HCJK8vkl2Mpwi0H/LhjDyMFbQGhlx4qx0oEr0SGWCWAxi1X8zf3bwu8/VMzymM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781258952; c=relaxed/simple; bh=9agdxz8c+FiTSQwOjdlKjytyRZBo/WDObQMT0qzIcYI=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=eUQKk7cd2taumBBmhdqxAyyNG1JpnNS8HiewuLIBIsGsF+JDpDzFbaKYH8F2AvH4UWJXxUqtoqpwHIjHNmPj/FuxG46FhsOqtGMuYsJ5DQsm6/9hw/r+9sc8TmD0+8IH4WKlj00IWnmDnXDUHhBH5ODqkpeOuJDZYuDlCoTO6mI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=NXOYlKSR; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=b2rb6HfE; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NXOYlKSR"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="b2rb6HfE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781258950; h=from:from: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=rLtZCrTqCWSUxUR2OciFR75Mxr1mj0TTxaB5GR/zvj4=; b=NXOYlKSRc8s7GoxCLzqfX8kME8/ZrVceOvCjeJh3tPSISdDg3vBYNSyDBnciV5rsih/D3S z5HzZZW9LZaBO2e4eDWzJYpBIv0+kfO2cZz77JnlFJbIROmR8bhMAVO315FqsKqzrCWBho X/RvOLMGRtJMghpKiurFc/jeftYD9Zw= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-266-X77euoJGPP-OfpzcRsRiYA-1; Fri, 12 Jun 2026 06:09:09 -0400 X-MC-Unique: X77euoJGPP-OfpzcRsRiYA-1 X-Mimecast-MFC-AGG-ID: X77euoJGPP-OfpzcRsRiYA_1781258948 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-490b9318944so5190155e9.1 for ; Fri, 12 Jun 2026 03:09:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1781258948; x=1781863748; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=rLtZCrTqCWSUxUR2OciFR75Mxr1mj0TTxaB5GR/zvj4=; b=b2rb6HfEKUb2pFsrzcw7LqfOwWGac0EBHgfF4d9nMBoY31JqTKiYJCyqoK3BFlTLT6 yJZ3v2COf0ocgn14CSpGpewtToc+9Hr73GakggSu6o2IQX6dnC5SFA5VtBm6ZfaoXFxn 2gTN15cS/h3kgq9z1D2gFsVCTIb85fT6nrZY7CGfJrL8CATLhE/XsXbSYzGACgJ9B/m2 qSwXTcLTp8viIW3mp+cwmS5Px27EMfP++lp3Xob4D9kY8JE8M2pkhPb8VrHz3xxyCm/T y1GqddO5d4OqVlJDMxc/y7gFr7FWO/AeE9aYozhJ4zyR/5Jpf6pBq9hG2aT2/4DKiF0/ JaJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781258948; x=1781863748; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rLtZCrTqCWSUxUR2OciFR75Mxr1mj0TTxaB5GR/zvj4=; b=cexrPHtUnb/5gSW37ZTp2SLOHdhG7P3s5ssKfUCdi438+ZW1f+I8LBx5FV7XiIsok9 ge50BlxBJxiZqg7XLsUs13zSItud4aI0X/Vy2rNGHl4SMnx0VMtmuxT0S62fptLmaiId 35zYQFdfIg8js1Ov6SsL72gYuT/NuoJksSy/JeBDbf9UiWdP8uSQfLkR92ucg/Z4ia3e g0tCeS1k/H2M8720ReAUzxHvw6pe3rxozZpeMsHInx52n51xNl7LXF0cAiG43R8FcHHD 25ScrQKwWvW0q5ihZs0/HMxow+dOkDZhCpWEcA8gvnipmM+D4bDFul1it7pIH2YGFyME V9bQ== X-Forwarded-Encrypted: i=1; AFNElJ+Etbrhiu1FQ6zHB2vti3kHv3c0pWCKHjqOEpObqEiwOprYl0YIYWg4nTwePn00Jp3HG2yjXnIwEiVfKNI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5tprxb/odTMaEOr8S/hoKWy9YlO6qSikHLc5jGokHmZcltNhV iR4JUYUBVklZkzAsH4M3e5llDi9MI+QofdRsF6dgJ6wfotZdail0GuXwonT/sG3ylNs9lSbaR+9 Hj7E6WCZ8just6FwR7bbNF/kHphs3ghD5GBhBgYag6zUcb7S8OTK9oOiT8pb868M93Q== X-Gm-Gg: Acq92OFOH5s9f1X8ejE9mebAoLHW1lAK3k0x/bdwEp9S4SRKhUayJip2UStoSqz0kjf GKMvgvAl2r7WfAcf0IE2rM/5p36OaDFRg0uZ2hqQsD5RA5mIFxIt7B3046v4okHZzV0GoBgvuoj pVwUFtOhENoxGMuoH76JUwHr1HVumgtRIy6S/wo0yfFwMtQluMcqIQgwrDWWUaCN2Kv+5RSEq/2 Zr8St3RwCguCwUlNAzCnov/1e2sq64WVkeyDeflhXdQJ3iYvpeOgxl4CiKmpJidqR8ivSLfI+eR SlOdhoiyQ9zpVF6G1/3rrWKjyjbJHoRhmbvRe6tWANKjiO9UcX52jZTDq5Z/ukywPsISRRORJdM M87vJInZft5wo3MlBV9J7sKrbmN+tybJ1hfoq+uXx+fJRgJaqLDO6BSAJTJBpSDgR X-Received: by 2002:a05:600c:3548:b0:490:e196:e8e3 with SMTP id 5b1f17b1804b1-490ec501a29mr27479205e9.18.1781258947921; Fri, 12 Jun 2026 03:09:07 -0700 (PDT) X-Received: by 2002:a05:600c:3548:b0:490:e196:e8e3 with SMTP id 5b1f17b1804b1-490ec501a29mr27478485e9.18.1781258947457; Fri, 12 Jun 2026 03:09:07 -0700 (PDT) Received: from [172.31.99.182] (91.red-83-48-118.staticip.rima-tde.net. [83.48.118.91]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490e2d0fb23sm135494125e9.15.2026.06.12.03.09.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 12 Jun 2026 03:09:06 -0700 (PDT) Message-ID: <10091ced-d472-4bfe-9cb9-8e7def23c213@redhat.com> Date: Fri, 12 Jun 2026 04:10:20 -0600 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v2 01/11] mm: khugepaged: add max_ptes_none check in collapse_file() To: Baolin Wang , akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, hughd@google.com Cc: willy@infradead.org, ziy@nvidia.com, liam@infradead.org, ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org, lance.yang@linux.dev, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org References: <2ae023e4c9f5270482c99f244af5d3a40fc49165.1781083630.git.baolin.wang@linux.alibaba.com> From: Nico Pache Content-Language: en-US In-Reply-To: <2ae023e4c9f5270482c99f244af5d3a40fc49165.1781083630.git.baolin.wang@linux.alibaba.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/10/26 4:29 AM, Baolin Wang wrote: > Similar to the anonymous folios collapse, we should also check the > 'max_ptes_none' when trying to collapse shmem/file folios, which is > also intended as preparation for shmem mTHP collapse in the > following patches. > > Signed-off-by: Baolin Wang Makes sense! There is the worry that we might have to move this into one of the helper functions I plan on introducing for collapse_file(). This function is very long and messy and needs some refactoring... Working on that. Reviewed-by: Nico Pache > --- > mm/khugepaged.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index b12187709f6d..631459172e19 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -2234,6 +2234,7 @@ static void retract_page_tables(struct address_space *mapping, pgoff_t pgoff) > static enum scan_result collapse_file(struct mm_struct *mm, unsigned long addr, > struct file *file, pgoff_t start, struct collapse_control *cc) > { > + const unsigned int max_ptes_none = collapse_max_ptes_none(cc, NULL, HPAGE_PMD_ORDER); > struct address_space *mapping = file->f_mapping; > struct page *dst; > struct folio *folio, *tmp, *new_folio; > @@ -2299,7 +2300,13 @@ static enum scan_result collapse_file(struct mm_struct *mm, unsigned long addr, > goto xa_locked; > } > } > - nr_none++; > + > + if (++nr_none > max_ptes_none) { > + result = SCAN_EXCEED_NONE_PTE; > + count_vm_event(THP_SCAN_EXCEED_NONE_PTE); > + goto xa_locked; > + } > + > index++; > continue; > }