From nobody Mon Feb 9 11:47:06 2026 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (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 C1B7A2F0685 for ; Sun, 25 Jan 2026 17:58:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769363931; cv=none; b=tmSJUTE00bVf7wUEeGDkFxJocpdxfUJHKBEA+7mWHzmxyIMsChbhc0aF5RRAlcwn98+gE5Qv+qSA5/uUarKPc4pMM/puNzPs/MEbmgNT9+6AGD5Ch++400/d/j8VEMz1nNCftlkGNQVz74vL1AcBmhJvWsVZUzg+bK4b+RKqktU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769363931; c=relaxed/simple; bh=2zdnU+7a25Pu+OEbE8AH9bgYY+XeoPXSJ97PofmKUOs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Qj699K6n6lO5UFo6gkDQhmbBE8e80u/GOcLe9s1j1JqM4dt/Ptyo0/V3wKcEXU5rciiFbyoU/iCOb8TkfcI6jrywqv0KqjCt72Q3RAlfIC5mtsTjN8VITx3Cx9D/VsAgKva2rsNxCRypUNVJEr6W9t/8kvPBzMYHy6fM3DcTDTo= 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=SbT/ZuSU; arc=none smtp.client-ip=209.85.210.174 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="SbT/ZuSU" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-8217f2ad01eso3335846b3a.2 for ; Sun, 25 Jan 2026 09:58:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769363929; x=1769968729; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uQE8yyzGZiePeQPVynz0h/tnTx0LJ5DrJMXW3u+lBh4=; b=SbT/ZuSUaSy1kgpylW1tovY2M1o9BVe8+cqYGMG7FTbPRCl3n3Oa44R9aqUGD4nPrO 8iyYGkVyRHtlw1EBuEAuaEXxMxoDl181ve5ST0dpzuN3R1VxpS4Efj0pnSzKegJ4COd0 zMgRFASQT3ujvvpj6555ZfwQ4orDY/y3JaYuwZd60R+7/NKub9b+AIiSpIatiEn3lxcC MUs/ypfQfqF/KMLQlgE/0folI7UcCQtZq0nehSZ3zpMgBrg5bpwqYlsQZ6dweslkCdCl cRI07B+LznCOpuYC/OAMhL5RCqs8Cdso4+zKWl0L2Qjh6gCyRnWdoDvkRetTaTMHHBo1 1j6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769363929; x=1769968729; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=uQE8yyzGZiePeQPVynz0h/tnTx0LJ5DrJMXW3u+lBh4=; b=aX6cxoZzdpZGJPBtar1oumafFbKRL7T3xLtFwiKlrKBrv0Rz3RsJ3d48onqFHJqG8j b2Sxrg6dnUUlSsPDw6wMsF31SraUtNbb+nOoukaBWBptYJmsybaZDyL3AhAFh/RkaP/d 0JjtnXJnsLW0GHBtjW5ucYtEbmwXUSphUv3KL35nN0mc7NNS64jHVzc/4V7GolU2Oxtk ZGKaNRMfSk2cKAAotHDD5dF+99Wk/K6j/uaCxXYbphclwJ/HhFN5tgEt0CJTSDr9KWNo 0Qbt+YWx1t3LUVTEfMWH0YfXbsuAuGpFHJNBMbTWTU0nDTvKvcsp3+2ggXE210oSoZjg 33ng== X-Forwarded-Encrypted: i=1; AJvYcCXrxxXHRNxzco+f+jYnwWMPTyap2JlAYBqPhu2Q5t74ai0/D3Y2GzIKaK4jzkpxnQR8Z66UD/C8VYQzI/I=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/xydf1F31dVcGe4n0Uhw2f5XzQMV/AH/bpyx7wCtH37DgbHiE H5BpQNcQ2/H5XQ78HwRK+nRx2PIwJrn5XtE5JT3r0ufttK1Zccin04c3 X-Gm-Gg: AZuq6aLCIqy3acqlCvHXpvCfEgWC151OyfzbsoTqPsuAoch9ZuIMPiiA1ONbK5MT/im hnHPoBdv0kBaEMNBbzi5XukNcb976rV+IwXXmgDK53R1ukR+NESknotNaz1kZ8RfMvdsbwuO0JT rvv3FdUllllKjV5i4jHc1J3VORF3MihXvt3CcTPAo3t3lsmGQ4dmmgeXHCjDYpFgNbxSVAD0ShU qJJSVeym5A2Pit3R+WLRovtxB1fT5I1Jepd34a8zC4vWim65YXFQC5M8OiSSukpiP4rxFHuR3R5 od7ItbAfQECal5r5Ekrv8BJXzuN0A+aKhgE+Ea/PV8tDLsHDS7t0kIewxCiyNUnrfBzEfzDUopk X2069+v32QNOlJsybLQ6c6F05XGvt8rAxIH2NMZKAL/q51OOa40jJqoTQKsadOPn7CBc8Y49fVG jBTPtXo07nfoOzeBAuOVlEHOGqCOG1xZLVt6MWjZfVVOZdHr5s X-Received: by 2002:a05:6a00:2e12:b0:81e:c91c:70c5 with SMTP id d2e1a72fcca58-82341213bdemr1724693b3a.29.1769363929082; Sun, 25 Jan 2026 09:58:49 -0800 (PST) Received: from [127.0.0.1] ([101.32.222.185]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8231876e718sm7405963b3a.62.2026.01.25.09.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Jan 2026 09:58:48 -0800 (PST) From: Kairui Song Date: Mon, 26 Jan 2026 01:57:33 +0800 Subject: [PATCH 10/12] mm, swap: no need to truncate the scan border 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260126-swap-table-p3-v1-10-a74155fab9b0@tencent.com> References: <20260126-swap-table-p3-v1-0-a74155fab9b0@tencent.com> In-Reply-To: <20260126-swap-table-p3-v1-0-a74155fab9b0@tencent.com> To: linux-mm@kvack.org Cc: Andrew Morton , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Johannes Weiner , David Hildenbrand , Lorenzo Stoakes , linux-kernel@vger.kernel.org, Chris Li , Kairui Song X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769363877; l=1121; i=kasong@tencent.com; s=kasong-sign-tencent; h=from:subject:message-id; bh=pq1GjIvtpTGgHlTDVRKdCpvcoSbubtPSJToL8CsvV0Q=; b=9Ka7MZr9XGk+rhRF3WNsZWfQXccbdJxuFEdCPU7riv3bXTdRHYfrGVzUs1h9iEOe8efMuv2HA Nd2Ymw1K5cGABeXNOlAyslHx7NJ26jpo2X3rH2J/njM608lHR7SBDKs X-Developer-Key: i=kasong@tencent.com; a=ed25519; pk=kCdoBuwrYph+KrkJnrr7Sm1pwwhGDdZKcKrqiK8Y1mI= From: Kairui Song swap_map had a static flexible size, so the last cluster won't be fully covered, hence the allocator needs to check the scan border to avoid OOB. But the swap table has a fixed-sized swap table for each cluster, and the slots beyond the device size are marked as bad slots. The allocator can simply scan all slots as usual, and any bad slots will be skipped. Signed-off-by: Kairui Song --- mm/swapfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index 2febe868986e..1cf18761c0fd 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -945,8 +945,8 @@ static unsigned int alloc_swap_scan_cluster(struct swap= _info_struct *si, { unsigned int next =3D SWAP_ENTRY_INVALID, found =3D SWAP_ENTRY_INVALID; unsigned long start =3D ALIGN_DOWN(offset, SWAPFILE_CLUSTER); - unsigned long end =3D min(start + SWAPFILE_CLUSTER, si->max); unsigned int order =3D likely(folio) ? folio_order(folio) : 0; + unsigned long end =3D start + SWAPFILE_CLUSTER; unsigned int nr_pages =3D 1 << order; bool need_reclaim, ret, usable; =20 --=20 2.52.0