From nobody Sun Feb 8 13:27:21 2026 Received: from out203-205-221-149.mail.qq.com (out203-205-221-149.mail.qq.com [203.205.221.149]) (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 7BD2A2FF661 for ; Thu, 29 Jan 2026 14:38:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.205.221.149 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769697509; cv=none; b=cRa1wGbcNWZOv3NwHtPzkfCSDpVvWVHzbmK4KWMU1/qIJblRw3yNPQiVeQU+NbLqBu4SjQMBAvG19XWuEAuWAvwtHwOloSLZ5fxHIa/DxdlCaDbKOVNiWmW0qYac3601aKJ2w6r5tQVt+sc7zcdV9v+vpAyvcpGTcqJmnJmnL9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769697509; c=relaxed/simple; bh=eDG4ZK/DZVndmNLiaWNruWXUNXB5EUENuEFNmXbqr1w=; h=From:To:Cc:Subject:Mime-Version:Content-Type:Date:Message-ID; b=U5ctGorT2yUGqNg4JkbiiNgepSflHSdPTGZwRXH5sCMNQb/HQpO4SIhFKeUevgBi13crvVI5gL3cs2gocuiioGx4lYBXlqyE9AxFJPLo48/Zo747J0Dyv4Hmu3ORHoJPRIYVi9whZOMIpYaPvvGaKZOvCpZd9/Ll7nqZjNmC5hE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com; spf=pass smtp.mailfrom=qq.com; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b=QGL8F3li; arc=none smtp.client-ip=203.205.221.149 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=qq.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b="QGL8F3li" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1769697495; bh=eDG4ZK/DZVndmNLiaWNruWXUNXB5EUENuEFNmXbqr1w=; h=From:To:Cc:Subject:Date; b=QGL8F3li6IKMT8/Ud8xeQ41ThAsnmrrqe58dZaf3N03MNxW1rPDVMsC5SY9v7E7oE 1a+S2ONBZO7+GZ0VoYskPXxaHc6ByDVTJsGli0uaXmlxy5eQdX6gSPIO68d/NNmISR Q7vphJb88wpVSLlI6AINP2UjQ7htBsDtHFmW1YuM= X-QQ-XMRINFO: M/715EihBoGS47X28/vv4NpnfpeBLnr4Qg== X-QQ-XMAILINFO: NZsV4gUOmyDof0vt+yCp8jp/fegMlX1/sJCUsfR8UwDnwuxAaEnwAE65qsc6Bw wbfCF/Ffc5CFNpDv3lQtctaYE6q0RtOUWmBzYT6eB+7UUuKSEi2s5pLkiKWJ6EPMKqLAkqwZyPyS3 Rx9EhbUltp8xFrEmjF57x7d3fKJVLIcT5q0y+t/o8Z52QsZk7kgbTorDJEOzz75hxkYWraTbH0S7F 9V5hT9/Zl8ZqG3TfsZ3dPya4IRjkNCIDwxzAEVr8oy7fRkF2nI3s3dvLTpfdV6wZBAvB8yYBjI/qa ZlXD+pVpJBZanBKua7z8bQVAkz0ymavNsal6bt1MosGp6LK0DEHK+c20HUG/YE2d15DbI+aISLaO2 AYlfP8fOUje6J7RBa5KQzO92/K+Mo5TnhUEmnLh0lU1JU+wZCmYVqWrh54deqryFRZH9aLhlEzU0j rRYA47p0CvRS3FSoAqd9qTGZJdf1rf3kgBHhKvGwmUv+8EGfLcErUcvFxzv+lk/TSsOChwzJKEFVW In/WXU2jjF4zS1TymDx43ld74tVAsGmeqrlYnf5bWPNPl9sFOHy6FCPBQyxSYniOnfuxh5ettAT7+ LMsuUVACEhv/V0pS3xgB/H91tnT3cKLm/+EfF7axZoLyXIuTE0xQleV9iyIsjTUCd0SIQG0KA31Wq GEIZYFGrwOIQxlvD6/IoG8kKW+hyKl3qwrxg/QRBeWzUnhApeqiXXEIDcJ/QbXBlLixq2i4R7M4cR YxCL5+j4RDGJNLoNZdxNyxgm4mW0kaad4jGVlRGVuCaiqjK8Iuz6fAQ3LGhXJxzNi/Fp5Yi5PJgTP ECXqUea1xEscKsz3csRorHSwzE/54Ho2K26gu79IoSD3kkpKEG3trzmIxjlkrjx7tdlk4lvC5+qRS ZZhUdC8UbRcKakzxY1Wb4LdUielG0b/9dENgPsNF5O+CM4xmb8PXcgHp4RiJOfNSz6Im0POl0WlYv A6/1D70MOvOyuzgSk2NOrdG8XNfeTDGUG2WODDRXFTazxBehICNcMfTkanybm/gyE48I7P34cOGxk whNZTqcBJSLr7LKLzxr1ZdK4NSULHgxjOJGBPeyZSLSf/WoMRh+n+BJn8cYJIx/6Vetj5ZdLxVzm2 5hk= From: "=?utf-8?B?c2hlbmdtaW5naHU1MTI=?=" To: "=?utf-8?B?YWtwbQ==?=" , "=?utf-8?B?dmJhYmth?=" , "=?utf-8?B?c3VyZW5i?=" , "=?utf-8?B?bWhvY2tv?=" , "=?utf-8?B?amFja21hbmI=?=" , "=?utf-8?B?aGFubmVz?=" Cc: "=?utf-8?B?eml5?=" , "=?utf-8?B?aW51eC1tbQ==?=" , "=?utf-8?B?bGludXgta2VybmVs?=" , "=?utf-8?B?aHUuc2hlbmdtaW5n?=" , "=?utf-8?B?emhhbmcucnVu?=" Subject: [PATCH linux-next] mm/page_alloc: avoid overcounting bulk alloc in watermark check Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Date: Thu, 29 Jan 2026 22:38:14 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x X-QQ-mid: xmsepub7-0t1769697494tr9wwp754 Content-Type: text/plain; charset="utf-8" From: Shengming Hu alloc_pages_bulk_noprof() only fills NULL slots and already tracks how many entries are pre-populated via nr_populated. The fast watermark check was adding nr_pages unconditionally, which can overestimate the demand. Use (nr_pages - nr_populated) instead, as an=20 upper bound on the remaining pages this call can still allocate without scanning the whole array. Signed-off-by: Shengming Hu --- mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5fd9e4a03..90b978802 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5130,7 +5130,7 @@ unsigned long alloc_pages_bulk_noprof(gfp_t gfp, int = preferred_nid, =20 cond_accept_memory(zone, 0, alloc_flags); retry_this_zone: - mark =3D wmark_pages(zone, alloc_flags & ALLOC_WMARK_MASK) + nr_pages; + mark =3D wmark_pages(zone, alloc_flags & ALLOC_WMARK_MASK) + nr_pages - = nr_populated; if (zone_watermark_fast(zone, 0, mark, zonelist_zone_idx(ac.preferred_zoneref), alloc_flags, gfp)) { --=20 2.25.1