From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76C9F23EAB4 for ; Sat, 13 Jun 2026 01:59:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781315966; cv=none; b=rtUZgYtdggUHtCsjv+OMvV22Vaj3OdudyVjflZCitysPnvlYJX/9DG7SQtZz9d8Iv4Fi1UShAX864pdn7hbwB8J42TTVzi8el7U7c5/Ap5lc8Tw/tQNV9rZPQayYpD9SXoUAFgxtkjjr6PkUyUbHkoFLQAL4GURq/in+DowlbOM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781315966; c=relaxed/simple; bh=8akHqP6twoB/f7CcCz6CP7RGUasgGPAyxTSbyRpgjRw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=MUEwx46MUf44aQ55kXi12xWtgynjD77IVqw+WCD2dKlpNqKzcYWAhFsBZ7TsAC8qEneLnYYNnOuEsri6z4pW4omhpgwpQwfukH5N1FFG0mqyvMAcOgvKK9RFDDVt+yilDo/FCQ4HYrI9hFEv94E8dYX2E5sdrXvPhWgzOsQMn4E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ktz48DxR; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ktz48DxR" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-bed2195323cso239788466b.1 for ; Fri, 12 Jun 2026 18:59:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781315964; x=1781920764; darn=vger.kernel.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=w6ZHe4A5e/aMPJBOdbqphS/Eo6/SVR2nadPy6eK7NUo=; b=ktz48DxRweb+6VdNT1wd0ijx/y5aY3l+63tAOZ4D7JR+YUf3UXG2mkUHW5zZniG83E D7grVTC6h8iVb5HiWzM6iM/q3z7Ohb6zaNoAFDTXDJTRLcYaxz+IKt/fYnK0fFoCTQeh qbUuUVHWd7MegHR/1FqsjZQNU3Ft3FIPoGXski/PXmdUzxDaO7vg3TkIc75cuXidWFEK wDYOm5sDZbG7gTI3Da0QZJnJGV98kuziCVPnVxBRNkBQS0g5+MZr/5H7SUdIdAhXTdUg 2nSEYcSnG8tPFSasBrpr/Hdpilq9N/rFraaQV15lte4BRbe7ZFTlNei++ntaFQAUnVDO 7rPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781315964; x=1781920764; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=w6ZHe4A5e/aMPJBOdbqphS/Eo6/SVR2nadPy6eK7NUo=; b=fqyoUYKH3SJlVyIRB27XQZi02OnBdynQbQ4PciChKv2YhNMp745kotVujc6rREeU8O 8ws7zXsp8vJGrHtBrbKq5WVIoW8puMqqNy4k4mr0sWY2HbW+xDtih9H4RTnVszBG3cTN xMVpTR8+/k5uN9/BEQxkSl7lfCV0A+eXreEBcOPPH08NkkgBjPFsFNZH5Pd+G6rU3EeO JNoW+aEt4j+WcM8SsaUzqAcnfQv+EvcagpQIbZhG+DsjVaijp7VmzFe8c45YVSSxVxrU N332LRDlT5Hlu2lrqG8a0Fi+aeeTLR+07s1TiTUghKUd81uZspVysyPsK6tdllrPHuuU lkUw== X-Forwarded-Encrypted: i=1; AFNElJ/nDfzOh7j8vgMUYSmHKWTKXQCarixRVjGztlpZvRLBtmQFiolj7qufl0WLbj0Ik29kJBLx2AW0A8WfB8o=@vger.kernel.org X-Gm-Message-State: AOJu0YzsLG8uUhejVtklNnW1ZlTWdK+RF/zD6gXvYEsha3Unf/ebNgO3 FxkiDKeNvIJdU/25DuNBZTKxs5el1dGCVxUg2tO6UM1T4tRwIcBPccMO X-Gm-Gg: Acq92OGEquwcZSafXUFFfbH8eHueeIPgMp55KJWZEKetXbWW7vWcTUsuWfsP76l8X5E rEXF5XxGHZ9koMMHLnjXonLQn4rdUIsU0o18D7xNaiyhHWCZ/OI/iYunS56G3GRz2P2XX1J8C4X wY/dO7mNx0NrC+y/y/hofoa9XKqHLC6Tz0/SUeedAqi1MhwomAHTUUXiQinp/6IRv627sFflwVQ 8tOlHvTm9AsCFto+f6VzPSYyznqE4YLjh9H14saL04svPlujoFvGxymCzyxWLsgIrAIyOC2gXHr Io5AO6GVlLj6ql3hecUsOE0C76k2yWmO9HcID4ub1tCT5yq31XjC1lOh9w0t5uJEWIkaFh/apNI vAbbvHuxk3nKCz5BgLHvgi+yDbf9g9j3pmwSl7/dVIy/+fIPEz9PkI2JW4to99QqJ3qZPKwNRqZ armkXJksMjZcVsLVC8lcoS8g== X-Received: by 2002:a17:907:1dda:b0:bed:19af:f8aa with SMTP id a640c23a62f3a-bfe26f2e649mr197263466b.13.1781315963582; Fri, 12 Jun 2026 18:59:23 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfdb7b6dbbcsm171655466b.32.2026.06.12.18.59.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 12 Jun 2026 18:59:22 -0700 (PDT) Date: Sat, 13 Jun 2026 01:59:20 +0000 From: Wei Yang To: Lance Yang Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, ziy@nvidia.com, baolin.wang@linux.alibaba.com, liam@infradead.org, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH mm-unstable 1/1] mm/khugepaged: fix PMD collapse swap PTE accounting Message-ID: <20260613015920.pvzhn7q7lijhouxa@master> Reply-To: Wei Yang References: <20260609120443.71864-1-lance.yang@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260609120443.71864-1-lance.yang@linux.dev> User-Agent: NeoMutt/20170113 (1.7.2) On Tue, Jun 09, 2026 at 08:04:43PM +0800, Lance Yang wrote: >From: Lance Yang > >mthp_collapse() uses mthp_present_ptes to decide whether a range has >enough occupied PTEs to try collapse. Swap PTEs accepted by >collapse_scan_pmd() are counted in unmapped, but are not represented in >mthp_present_ptes. > >When lower orders are enabled, collapse_scan_pmd() relaxes max_ptes_none >so the scan can cover the whole PMD and build the bitmap. mthp_collapse() >then checks the PMD-order candidate using the bitmap. > >With max_ptes_none set to 0, a range with 511 present PTEs and one swap >PTE no longer reaches collapse_huge_page(), even though PMD collapse can >handle swap PTEs up to max_ptes_swap. > >Account unmapped PTEs only for PMD order. PMD collapse supports swap PTEs >through max_ptes_swap, while lower-order mTHP collapse does not currently >support non-present PTEs. Keep non-present PTEs out of the lower-order >eligibility check. > >Signed-off-by: Lance Yang >--- >Sent separately, as discussed in [1], to spell out the PMD-order swap PTE >case. Patch [2] is still only in mm-unstable, so no Fixes: tag. > >[1] https://lore.kernel.org/linux-mm/CAA1CXcD7WAiA1b9GTLAuNZ+kHaFx0SzZwpBkqAZ=s+RHsTUaow@mail.gmail.com/ >[2] https://lore.kernel.org/linux-mm/20260605161422.213817-12-npache@redhat.com/ > > mm/khugepaged.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > >diff --git a/mm/khugepaged.c b/mm/khugepaged.c >index b12187709f6d..617bca76db49 100644 >--- a/mm/khugepaged.c >+++ b/mm/khugepaged.c >@@ -1508,6 +1508,14 @@ static enum scan_result mthp_collapse(struct mm_struct *mm, > nr_occupied_ptes = bitmap_weight_from(cc->mthp_present_ptes, offset, > offset + nr_ptes); > >+ /* >+ * Swap PTEs accepted during the scan are counted in @unmapped, >+ * not in the present-PTE bitmap. Account them for the PMD-order >+ * candidate. >+ */ >+ if (is_pmd_order(order)) >+ nr_occupied_ptes += unmapped; >+ Nice catch, I didn't spot it. Reviewed-by: Wei Yang > if (nr_occupied_ptes >= nr_ptes - max_ptes_none) { > enum scan_result ret; > >-- >2.49.0 > -- Wei Yang Help you, Help me