From mboxrd@z Thu Jan 1 00:00:00 1970 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 0F200C36017 for ; Tue, 1 Apr 2025 17:56:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5938E280005; Tue, 1 Apr 2025 13:56:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 51BC4280001; Tue, 1 Apr 2025 13:56:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BCDF280005; Tue, 1 Apr 2025 13:56:16 -0400 (EDT) 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 183F0280001 for ; Tue, 1 Apr 2025 13:56:16 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 018101A06EC for ; Tue, 1 Apr 2025 17:56:16 +0000 (UTC) X-FDA: 83286229194.14.7AE5E29 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by imf22.hostedemail.com (Postfix) with ESMTP id 08E6AC0004 for ; Tue, 1 Apr 2025 17:56:14 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=S2aOfhPE; spf=pass (imf22.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743530175; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=WnZjQeYj2LLXe/FrVuXN/KbBh9xE11zWRiQKWx4CyHE=; b=oo21BOO44RVUdOKHErR72MvrqCuwf2xUHi0Ud9L6Lw3a/r7Ll5AurfP6qlhC+hIvrhZKX+ 3pJdz1HgEgyASvodz17tacDQetv5yJiqLJlVAwGERe6yMBgHkgCHhMkONQc2c0PsKWp/N6 MNeHPuu+tqkTYbwteuXUrcWSl8GG3a4= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=S2aOfhPE; spf=pass (imf22.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743530175; a=rsa-sha256; cv=none; b=nUv23trxljWA53TnE/ZcVN7UB8frKSW5n4BVnPXIR1uoqFmK/NX5imHsEU3osBlzZI4pbN uWUxKvrq4ny5uXY+J9yPTai3AwxWPH91zc66SW/9co7+HMbQ6iqxHPPhsUm6OT0kfGe5PI nlaOr+7Tz734H0+mqcTsK53Gz1lprm8= Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-399744f74e9so3825772f8f.1 for ; Tue, 01 Apr 2025 10:56:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743530173; x=1744134973; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=WnZjQeYj2LLXe/FrVuXN/KbBh9xE11zWRiQKWx4CyHE=; b=S2aOfhPEEDexVVucGoRXt1Xg5I7aUk7DnkRAPzqIICfHkgpgxDH9RmTPApOW+ztR1Q k5qj1MxX74gREeff+QY5+m3t1sRU8f1jqsL8mWcr80M365okSME4n9txM8uRSlmtal91 sogPywIU+sIOTUJ/aeHzeqVvHSHxtV3oml4s/2f5S7tEA3X0Wp2/Kad5/7Ec5WAFQ0z4 Gm45jHcqPOhdIsUUlq5Fa2kXcm1gvG07JtQCDT5g8DoJtDpH+mTHz4E452SPkoUTPhG7 W8n8J/G9nGjRk3BDApgdL+et6OeWPaP2jO1s0Je2CO6h7d0+vUGSv9tQ3oLxpDr/1LaW wwOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743530173; x=1744134973; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WnZjQeYj2LLXe/FrVuXN/KbBh9xE11zWRiQKWx4CyHE=; b=CKY3ONp42WrbF5X2fIpYd4eG9HW629UjNfyvy7wZWJlhBpDLa04OxpsAJkZMaCWPsl GAL0MyT6QsOvJNABPavBXGE2NeCcl0iT1C0NonzvBp0G0Jdk6Y16MOQT02mowcHXpwYr B4KvicNg8qTuvaFtGdxu7/heZOTOBFIFIQRz+DLFVAbagqvcKIs7ThweIVyenIjINLxW J2kSTFYeIj+0ybQvsXEjz1enWxebqQ5vI0PAAZRIrWhuvwfO6DBLal0bZwlcZ8+AtnMZ 0zZfABy/yC+zQwb2yFEepL2Ec/jkb0s43ne/4dpVFJuj3i+E9H+jT9euSiPDTkZp8Afv wYnA== X-Forwarded-Encrypted: i=1; AJvYcCW1nQlXUAaPW9tEvgyEMrkMC+mk3Y+u8agQT/76HSdwYWyZOrj9aAieK+BsBF00mJQAEcyVKhycFA==@kvack.org X-Gm-Message-State: AOJu0YyBLxo2WEZ6k+3BPBXOjJbqyvFQ3RUBd+xfzsJZ9xGaqGtSLJBL 88YJ5ZXQejKjhape06DlCz1wJqFnoOR+hpZzllBb6l6wq/7f3M0gfvuiqpM8sf6T7vAoEbYzc32 ++IrTi0zLTQxbU5WG2wYZ4D1c1fE= X-Gm-Gg: ASbGncudO8dvz6PB0Mj99EKsIOg1/WYYTCv49OLEngnyr3RY4ppfilb+0X6HalV7p3Z 6NnjP+Tc5uV6AIMCQdRfd0NKxUuV4YIowEX0ay4qc5e9+S8A9xpo4goMpsmlRPntSKyVANlK2TX 0zTd9vKGKkXoi3KbkiRre/5EF4Xu9aJz2APA9IAq2JAg== X-Google-Smtp-Source: AGHT+IFzfUSEb75OsKQYHv7fgivDskA5ZsjPwpoHrgBTWYRxdn2mQeWDAIpd7Au+TQQ7SWEMu/IKY+qgtaRQWPCIvrs= X-Received: by 2002:a05:6000:402b:b0:390:f0ff:2c1c with SMTP id ffacd0b85a97d-39c120db3e9mr11031750f8f.18.1743530173239; Tue, 01 Apr 2025 10:56:13 -0700 (PDT) MIME-Version: 1.0 References: <20250401032336.39657-1-alexei.starovoitov@gmail.com> In-Reply-To: From: Alexei Starovoitov Date: Tue, 1 Apr 2025 10:56:02 -0700 X-Gm-Features: AQ5f1Jq-kAcgv3xIHuOMI8hzI-DQEU0M8qCQ7379ddqZEo2RjuAZytHtwhm1jSo Message-ID: Subject: Re: [PATCH] mm/page_alloc: Fix try_alloc_pages To: Vlastimil Babka Cc: Linus Torvalds , bpf , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Andrew Morton , Peter Zijlstra , Sebastian Sewior , Steven Rostedt , Shakeel Butt , Michal Hocko , linux-mm , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 08E6AC0004 X-Stat-Signature: ft3pbeitu99xykwkirksbe9t9sfbsjs6 X-HE-Tag: 1743530174-940509 X-HE-Meta: U2FsdGVkX1/o5uQ/wXYvPKnP3E9UnM3u1kcwx00xMPxxuqY7fkGOOXWB4ElRO5Wsws2gMXHNMvNKGxB1rb9rcMF6gQZsRr8xJCvNaYwqB/rhENFRu2inqpgIyKkN0vLVfQuWRvB1SlkfJuCnZE2AyHcPi6rxT2hhKp9kYNYUUNYXCflN9ENDJdZf0NgGwxwOh6vRqDEUXgh89WsDN6KvSuD9ZClavyFOemIYfAYtWLa03TixFN7inrWnmunT7VX4ic2pz23psG8NZPFQzZuJx7nNd2gM4wWEQhtb7azt7TZ/ki/NmGksDfUz3hV1P8HEbe7yuCborm9/EHMlU10lsPWuMBLAfcPa/Yt8+QTgTV03mD+gZTuPGscD5NLc0+DZmBrsRMR3J2H6cpYQXTddOTU6Tq0Ktfr4U+WPXdpKeEYpXAC/24BYalw8EAr49GNKRVjbEE8Hb20Z8TThHQLz+/xrF5kAtCuTGbELgeaoNW4zNDMeAIFodivPypibRoKG9WbaMUHr88hTfCvLjTM/tEzkk/95zEQjDNeTp2DNZ5Vv5Txr6FJicoXf/CfIa7zN0fIm7RCCDxh0Wp9Qb/hgSuwFp1zZgLrvUcXZGHenRcGvU/xLARDlrfMJ5NtQIxTyvWhcbzKpX/HEDyRDamP1iFuH/OJGSFIiiKQLRoX9rBZ4cVAVogBHlR7YWYEQkHxLVNBkr1+V0UlwKc0zywqVEQWtDt6tDfPc0BR5C82HjU4dvyOkF6qUMREdpAmnMurUSH0nFCkL5oEMr72Y6y66sEueAS/GXeStldmmZIUCXwyG0Vrgy6399rRdp7lnJmIhb96DhN3/u9lkLlZf4RgXeJK8kbF6lhQ/+s/O6GUHIlhtqAnGv5IY408O6ObFMVFkxrMpwj0E942DSbCpYohU5oTs5+IXYetgYYAooCzHGiHloKCzwVdNUMbY0rVnfUL1odkCInPkBV31qjxREgf pBiQRdPS zwphLtnHQrmF0Lq4Slt/OVkWrWotmmX9Q48FFHxcHO/Qft5Qb55qILlM2M7n5pPb+ubB9orqp8c724O2BFxiN24tQzWEkcnvAUgD0YULKX1SnsXZH+IeDmhV212Noc1dF+rbg2LA4EADQy291eOJIIb3zTX7JpOS1p5+WMoSHZD+WjkyCPmUMNBzMThY1oTVwrVl627Ev4565gNdhcPjcXMvi1Tr4VozFeBbvJRfpsrKAPfHut9gNh9+8bniG6xv+lMFRLzy8P1G7jf24rTVH+FnByH6coiR+V+Ho/02GlASIIjVgJMu11TJ+ePVSosiohq4JxfY4/ioxnSEkYsQ+K13ViIgB5KqZcCFfBfCGqR6s3nuMPl5HtRwLPyXy3iPvbNnemV+nVTIC/pAeni5gsKUeVr3eCZfyMvcdhsObbpsr3mg= 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: On Tue, Apr 1, 2025 at 12:53=E2=80=AFAM Vlastimil Babka wr= ote: > > On 4/1/25 05:23, Alexei Starovoitov wrote: > > From: Alexei Starovoitov > > > > Fix an obvious bug. try_alloc_pages() should set_page_refcounted. > > > > Fixes: 97769a53f117 ("mm, bpf: Introduce try_alloc_pages() for opportun= istic page allocation") > > Signed-off-by: Alexei Starovoitov > > Acked-by: Vlastimil BAbka > > > --- > > > > As soon as I fast forwarded and rerun the tests the bug was > > seen immediately. > > I'm completely baffled how I managed to lose this hunk. > > I think the earlier versions were done on older base than v6.14-rc1 which > acquired efabfe1420f5 ("mm/page_alloc: move set_page_refcounted() to call= ers > of get_page_from_freelist()") ohh. Thanks. Still, I have no excuse for not doing full integration testing. I will learn this hard lesson. > > I'm pretty sure I manually tested various code paths of > > trylock logic with CONFIG_DEBUG_VM=3Dy. > > Pure incompetence :( > > Shame. > > --- > > mm/page_alloc.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index ffbb5678bc2f..c0bcfe9d0dd9 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -7248,6 +7248,9 @@ struct page *try_alloc_pages_noprof(int nid, unsi= gned int order) > > > > /* Unlike regular alloc_pages() there is no __alloc_pages_slowpat= h(). */ > > > > + if (page) > > + set_page_refcounted(page); > > Note for the later try-kmalloc integration, slab uses frozen pages now, s= o > we'll need to split out a frozen variant of this API. Thanks for the heads up. > But this is ok as a bugfix for now. > > > + > > if (memcg_kmem_online() && page && > > unlikely(__memcg_kmem_charge_page(page, alloc_gfp, order) != =3D 0)) { > > free_pages_nolock(page, order); >