From patchwork Tue Feb 25 18:45:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brendan Jackman X-Patchwork-Id: 13990537 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 08546C021B2 for ; Tue, 25 Feb 2025 18:45:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E95A6B0099; Tue, 25 Feb 2025 13:45:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 698246B009A; Tue, 25 Feb 2025 13:45:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5397F6B009B; Tue, 25 Feb 2025 13:45:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3555E6B0099 for ; Tue, 25 Feb 2025 13:45:25 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 929821219BD for ; Tue, 25 Feb 2025 18:45:24 +0000 (UTC) X-FDA: 83159344968.07.497EC6A Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) by imf20.hostedemail.com (Postfix) with ESMTP id A11C41C000D for ; Tue, 25 Feb 2025 18:45:22 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=dLnw0Rwn; spf=pass (imf20.hostedemail.com: domain of 3wQ--ZwgKCB4D46EG4H5AIIAF8.6IGFCHOR-GGEP46E.ILA@flex--jackmanb.bounces.google.com designates 209.85.221.73 as permitted sender) smtp.mailfrom=3wQ--ZwgKCB4D46EG4H5AIIAF8.6IGFCHOR-GGEP46E.ILA@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740509122; a=rsa-sha256; cv=none; b=sPhM3TXV+8aUtyQosYdt8oKi5pdkAPoBtr5uDE+aoemMnoGli+TcG/+r/DFEeRKlUEUlJr KzngYyT4cIlY8jb0HVh188jkQ0NN9gE9XlvdKQbkwTQTEUpldryMOJKkmlqpXx29GChMV+ X5zzd6l5liLE556pq8AuBnbCR+yNBTo= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=dLnw0Rwn; spf=pass (imf20.hostedemail.com: domain of 3wQ--ZwgKCB4D46EG4H5AIIAF8.6IGFCHOR-GGEP46E.ILA@flex--jackmanb.bounces.google.com designates 209.85.221.73 as permitted sender) smtp.mailfrom=3wQ--ZwgKCB4D46EG4H5AIIAF8.6IGFCHOR-GGEP46E.ILA@flex--jackmanb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740509122; 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:in-reply-to: references:dkim-signature; bh=Uuq2MzTQU8OzNxVyBK5axFZHCKkKakfNosvjOxzPE/c=; b=DcM5ENk3aGVlecV9/THZBX7l8sYrmVMBJYCx87k066PSxJmZ9RhA9fgeEoHezu7DSuCk2F 7MgbEgRJfdFXK4GPnvl4/850Wvj4nR4nXRBALBT3HYLb8ZQykddkVX1k5rSLvmdk/bsWb5 VmaLVe+Sd9vGUmADYh0pGPq+CShVva0= Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-38f28a4647eso2529314f8f.1 for ; Tue, 25 Feb 2025 10:45:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740509121; x=1741113921; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=Uuq2MzTQU8OzNxVyBK5axFZHCKkKakfNosvjOxzPE/c=; b=dLnw0RwnGU4uZoqlftSqmRhiJHhF7MM19cbUcbSd8cmXGq6k+GFkWvYclGUTCntsYo jLPGVcccuC5+5j7S+1VDTKHT90/iiiFzvslgnVHGL5CTrkH2+/AAIvW55kzklVGR3egh Qx3v77aBB29u8TDl/YwhpmIqAGFjFWx5il6GXxSecqh0QSZ+nOSfG1fWh5+ADuXLfkp0 1YSbPUhtP26QajqhIGLMsk3fOecDn6LuheEtdVhIc8LsGmQFa2W1BqhCZ7ToeFKR6Hxk FAGp2IWvw6+bAckIDrH2THirRERlXUurmcg+PS4TTO9nAHOKZJH54Gicuc8LN9brCeom o0hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740509121; x=1741113921; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Uuq2MzTQU8OzNxVyBK5axFZHCKkKakfNosvjOxzPE/c=; b=U0Z58eI/a229WnFQUt9C6d6mmH1AuAsnE4JXx4pgEj9lXaXS/ac7TZSazdhFPS1ppT QGvDICAMTjDbGeVTPyms4l4aHz81kFa3I+VmE4fs4jAfTkEQ2SZJXL07LIqORRu4uQQv LhDUTV9FxNmY3yrChiHuCkrYVpRhsA83KaoYGC0QGPI3bsG24TzxmT10hilJ4+GC3DA/ kyizGU8YHx2f2Jp+zTQAMruM4Kgjel1q3X5eze8iocpttr6XDrv4AhaFro3yvJ+HJJrm Vvn98gFlNRZiSZ4gv88OSDk5ThPJjIdvPC0pvfyVx/gMq8tCEflVBJ3Ue8+nkV48QYUC gOXA== X-Forwarded-Encrypted: i=1; AJvYcCWf3qtvnMj1FB+9U0w/MCwcSfES4smvfBrTPghfeGH9oFC97Ousj7aT5PyIFKLRYKpv0hX7KXi8jQ==@kvack.org X-Gm-Message-State: AOJu0Yz2/14YkgVAwaoSyABHImT3YDbmGncwNNGmXhN2jzOL5xdAC1qI wbIzwRxPIcF5mJPYdjcpxO4B2L2wR+5rrX6pqWAZm/umswJ9gfel3/LNISQ95oTx1QOVyliytTB Zzgvkv8oWPQ== X-Google-Smtp-Source: AGHT+IEeOi7MBcMPL5uOIdLWbDdUI8xifnw5VvmKnr87ZFXBjRdbGkRGX0rw7TfYAQiKF2vNDxCNGJ/cTtI6Iw== X-Received: from wmbez7.prod.google.com ([2002:a05:600c:83c7:b0:439:89d1:bf88]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:adf:e78a:0:b0:386:3328:6106 with SMTP id ffacd0b85a97d-390cc630c5dmr3975963f8f.35.1740509121096; Tue, 25 Feb 2025 10:45:21 -0800 (PST) Date: Tue, 25 Feb 2025 18:45:09 +0000 Mime-Version: 1.0 X-B4-Tracking: v=1; b=H4sIALQPvmcC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDI1MDIyNT3fLEojzd0ryU1KK0nPxyXfPEJAMDM0tDC6NUIyWgpoKi1LTMCrC B0bG1tQAZv/4VYAAAAA== X-Change-Id: 20250225-warn-underflow-7ab0069182e2 X-Mailer: b4 0.15-dev Message-ID: <20250225-warn-underflow-v1-1-3dc542941d3a@google.com> Subject: [PATCH] mm/page_alloc: Warn on nr_reserved_highatomic underflow From: Brendan Jackman To: Andrew Morton Cc: Johannes Weiner , Vlastimil Babka , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Brendan Jackman X-Stat-Signature: o55hg1fri7uispktohtiebj3qsd86f7m X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A11C41C000D X-Rspam-User: X-HE-Tag: 1740509122-304427 X-HE-Meta: U2FsdGVkX1/B47pi3JIi5nJEZtcSIIphwQfvmXIa97mmYNVjKO7fvDWDE5sTUQ9TBrC04O8Qq6ww6p08r3vK4TYiJuJI02HIe8uw/j6eVTPYX2r+1iV3CgdA3n+qcbj3fGVXBDb4ibxuFg/lAuy9ZGVa0hY8Jyzy+WVgqh71HHUDhcihu/CvSY9S5rBLbF/l1ItPjGNoyMg5h96qbc3w5jWq2HEhLu8qJh5/RHDyJOYt/X+QFqtWUVkYQwyNKwCwy5lCwPPOHX+IcGrkF3UDlIkraiT1WkGJzvbQZttXWoikMzsN/FacTVL5X9Ai1FpmK+AgNEK5W4STi3cmKmIPRHR4wwWdljZy6ZFbxRGjA/dOMb1S1C1hHaSW7/Bfxys54BTp4uVVT4Twa83iamMu0IBZtZyxZnHyriCXBIiAbIPsODRClkXXtOsdqL8/6yElx2W76VcQS6utmhKqmuMZ86fy2GOKCBa8IE4pat76D0vQB7b6gGhhK66+ShNsYaD7eD6SJrT72c3RZigNUImpQasfJ7PGJwyJtFTLUCB/Sbd6NkdfjjHVTcyMIlLEqSDXLlSdVJVWn2MFYI+KDY12o/5uS1LGsibCBgd4KdC8ukC9YPlXw4gt6e4jXUKbEpI6UVHNTMzTL3Sa2F6yc72r4l62N+nUR9szmwrr2c36VxTZCtQlsGtYtZmC0FwaVqiLSkat7x0ALc2nUYlEoKAnYh/QnsokS8C2L1GHlp2nz9gxPEksOh+yqoz6eWfgeJ6Vc/794yEcGrrAGRtnTJLi6Fpbz1YCfo4aqwc1NpXZ2vgvYBJhDx13wUCPc5+5naERsQmhBIP/vkuy8dazeOhHE2XdqZRgwWU2CLqHBsP9ql8ocMeymegEnAZXw52oG/2RAwEgn94M4oT4BdQOl3C4uNJlt7EUI1vO2wNmhyYi0KclLG1Q18hiuguS5Zk1WefW26VvUbUPhNbUC2wmbiP fBzdbsI/ yu2Y9o59t9T4w87J2HIpvHCnNDDStqmFvljieIKo9OXuvhO+bR1n3gFHEW7Ne77uS/H1r4X9cBZdGXfu0saXN7NEmsLaSbjdxvONyScIBpvpHbkY6BX2fCABgU2lKZWqOSuiy5Dx5qVlg0wNJNXHCXk93S4KAOFa81kpwxlc3kdGwmPkRexc9gyiS5wJ+jHfbsTpETodYAxN6Zv5JZuqookfLxnLfMH4Am98PURr7SLIDje3DvWQiYh1Uu6uS6gf4GRbe1bLpcAOkbAQv9Gs6u6ecAW4H9mQwbnbLcpKEsi5vEcQQrrZaF4Z4vdhLlw9+Dj8x1atSba1ggv6p1+WyhDyYarmN47beLQz0qTF+GFsBKbCnn9pQmKtc7uQe8YqKr068sCZpV48J8ZVZBboArzmvLhp6hRvxj47KdcVr0hMognMzLMeXKH5LrgvOuCQnadfka9QEgpamcuz9toxCD+fWbOvE//p80wVqQUEbr0kUyPMZZoGQlRkUnBoxcasEWnSuYq4g7RvjE0imoI/XEobFIxp5IorJRljwsZk48BZolbfabfPRvMYSaDSLv0acN9h9jMzQS5WBp5Dt1lB78hsRpdzRYlKUYtiOQgpywEr/KNKb6jilZKgJBf/rfaHfo98WOmm4qAGdkkrFGGfmWjH5EWjjQEl9EEWS92OOtXhk2avwPfHFkcyYOw== 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: As documented in the comment this underflow should not happen. The locking has indeed changed here since the comment was written, see the migratetype hygiene patches[0]. However, those changes made the locking _safer_, so the underflow _really_ shouldn't happen now. So upgrade the comment to a warning. [0] https://lore.kernel.org/all/20240320180429.678181-7-hannes@cmpxchg.org/T/#m3da87e6cc3348a4640aa298137bc9f8f61b76c84 Signed-off-by: Brendan Jackman Reviewed-by: Vlastimil Babka --- mm/page_alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- base-commit: 0c789105c9d6c65777c995f4935f2e119d5a31a5 change-id: 20250225-warn-underflow-7ab0069182e2 Best regards, diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5d8e274c8b1d500d263a17ef36fe190f60b88196..715a9cfe162090cca9eb819a34c64f9a1c6db29a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3095,6 +3095,7 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac, if (!page) continue; + size = max(pageblock_nr_pages, 1UL << order); /* * It should never happen but changes to * locking could inadvertently allow a per-cpu @@ -3102,8 +3103,8 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac, * while unreserving so be safe and watch for * underflows. */ - size = max(pageblock_nr_pages, 1UL << order); - size = min(size, zone->nr_reserved_highatomic); + if (WARN_ON_ONCE(size > zone->nr_reserved_highatomic)) + size = zone->nr_reserved_highatomic; zone->nr_reserved_highatomic -= size; /*