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 79E3DEE49AB for ; Tue, 22 Aug 2023 21:19:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EBC29940030; Tue, 22 Aug 2023 17:19:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E6C1E940007; Tue, 22 Aug 2023 17:19:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D33AF940030; Tue, 22 Aug 2023 17:19:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C32A8940007 for ; Tue, 22 Aug 2023 17:19:30 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 88CE3404C8 for ; Tue, 22 Aug 2023 21:19:30 +0000 (UTC) X-FDA: 81153006900.10.9DDA296 Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by imf02.hostedemail.com (Postfix) with ESMTP id A57838002C for ; Tue, 22 Aug 2023 21:19:28 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=XYUj9hDT; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692739168; 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=O+POAfsybIPLiBgKZtn0Nj8S1fkvlWy6/FL0w0TknP8=; b=aPa85YaSl7Net7Tf3jSsTw2dMPiuSWydTN2oU6nEqP3UG+ujmjZYsYP1o1vlx90e1KUHDB 3YSwFdgyEtSpP8Bb+2WkCtCIkJKFTPkA8cohQdq/aZB/3a6yEfE3a34fmhduCiLAFmL2eI iaN1NJYahwZ406TU0TZwN8wsTjJUX/g= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=XYUj9hDT; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692739168; a=rsa-sha256; cv=none; b=WGKAHdmiocojZypMyiW765QoyQleGdAb7keruVCVY4xM6cYCPJjgnbglLHs6a63d/bDXWs EMVACb+lPbJXQEA8jddUiM4SO2IqDP37JPCd5DH9vGcLEFWyv+SHEMr94dppsyDOgMPRHt O6mKUNfDoDrPizUh6ywMtgXQJ/1ZUNA= Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-2bcb0b973a5so50296061fa.3 for ; Tue, 22 Aug 2023 14:19:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692739167; x=1693343967; 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=O+POAfsybIPLiBgKZtn0Nj8S1fkvlWy6/FL0w0TknP8=; b=XYUj9hDT18p54NiVX6dY6Q/kb9npv9lr7YQyNUXVkOSmJP0uDBmLgP50m0fZC31/nG //QGb6plAVSeyVru4kYATLT0UfRmE9Eq0MfxsO1opbe8RYPlgQy40R1MgMoUSnNQe3Oy gCQ9xQkiL2JYIavjPx/JmylnrdLmNmDYMglxYZBKzB7jxSH27/alSGcnF5iJ5mNaUuLP kWh2voZ/6jhJ8or8S8xSnqlFiHM7NUa1FMwSXvDsYeJRwLMpm8npB4KHWcCRCo8Fli0L GsfGaV6ui/AOnl99P58MbCR4JOuMj4dwWUwu7hwjAPLUP6SoX8oDRuC31IAa+9fDPwsJ JVBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692739167; x=1693343967; 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=O+POAfsybIPLiBgKZtn0Nj8S1fkvlWy6/FL0w0TknP8=; b=E1Ke4AsnD6iO0qDhqbDP8ARMet0lOz+k/y7gLp5ldBCU/tZ4tr1xhjT1vvb/KHVRM5 VAyQ8Lg76akkR6yPP76V0H6CB5qtlOFx+2wD5tldxlceRRi5l9jvw59ePCZ9FOU/1XMq X2ovmKQOvWShJmyi1dwZHrc1COogi12yAxkfMQTZNoNtwQ3fKO/2y+5C5rtAT8gJt1UC SAdrf0n/5kWJLlNMsUrtd62iS7RyicMZp76Wbi5KVJr4MSSAVGlkK4bGsIblYoqK+NjP g5U6nuxkyM1F9iY3gFk3UnSxS2duXZZbr0j7i7/lnn2B0NTcBkvA9RiISzh65YfLrsTT w0jQ== X-Gm-Message-State: AOJu0Yz24At1VoMbn1v9sJpKG9KjLwgNEI6t0QMRUmMoYchZs8hZ2KrR 1GXBU2lYvDHc6WRsMWD98NvMt/bOcNpUO7nP8uE= X-Google-Smtp-Source: AGHT+IGuuXsfBiKhX0YrrEA6ZHzNGqpj5f3hU51bESjED5b/pmZUSywadug8X+MmPO0dsHYB4kL3S8gEwr54IdX0xSM= X-Received: by 2002:a2e:9ec3:0:b0:2b6:fa3f:9230 with SMTP id h3-20020a2e9ec3000000b002b6fa3f9230mr7051208ljk.46.1692739166546; Tue, 22 Aug 2023 14:19:26 -0700 (PDT) MIME-Version: 1.0 References: <20230817-free_pcppages_bulk-v1-0-c14574a9f80c@kernel.org> <20230821103225.qntnsotdzuthxn2y@techsingularity.net> <6a18b295-92ac-1633-0b79-6aaf18a8496d@huaweicloud.com> In-Reply-To: From: Alexei Starovoitov Date: Tue, 22 Aug 2023 14:19:15 -0700 Message-ID: Subject: Re: [PATCH RFC 0/2] mm/page_alloc: free_pcppages_bulk safeguard To: Chris Li Cc: Kemeng Shi , Mel Gorman , Andrew Morton , baolin.wang@linux.alibaba.com, Michal Hocko , David Hildenbrand , Matthew Wilcox , linux-mm , Namhyung Kim , Greg Thelen , LKML , John Sperbeck , Huang Ying , Alexei Starovoitov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A57838002C X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 8wifu9164odiuoq1pa4m9tc5opfpc83s X-HE-Tag: 1692739168-483274 X-HE-Meta: U2FsdGVkX191R/AVsjfclEuI8pgXaMY6npaCuufuEgoLLykv2lTYBLErCfk43COhe5ZqIh5cH8VE0EyMLgUjqdXF4J1CzGkN55LtJURrTQgr1Kqsx0IBDKMxa2Mg7J0EBEpJVU7vNmBSO8KXid/QeFyIr27PrKU8AEyBCuKsg/uv8skvIH31JqrB/BRKQkTowQb1Qb9CtnfLPnGBC0EXKMT/13jhJu5DeRfTwJ8HJeRFPgk5QIr6duhph1CmcBBAn67NFRVwkMAQ+VJrF8oOFq6rjpo5pWQUh/A1xyaBGCwWvd5kE5xmXmrSA6ebjvM7HqGUqqELjyo0lfszNXzvFEG/SpwABPtpNK5tkGwaAEgGACjAJ9shHq9j9IXp2ef5G2ArnHR7Cp0LSi+KdMxPHZNWroDrLQHcXDtfoRxYQIdMJdf/42jWW57rV+CKFKfHLUVcjzNl2v6+r38srqYZ5LG4uuK0m7gPkAWVVP6NuXDCW33QerwbnG/qRfNM+B8l8KRqpxT842NpeivWvBgLPAHYkZVsU1yurfbl3ZuTMRtERwIF/K3K+9EDqwUawsdBwxl74sKKeUhAJeZsNO2ENgp4PQXJtdeOl90jFkfz4/RlP/C01YXC2tCVPeUrWNJBtwdZClJMfNglNKutNTXIIiUE3qE5ShNtu2xPsIs1Udk6jmjIgK6Cnk/o2sM4X1BuVNzLttCwZc5PyhM+rGPATjtVShFnArPx+bcPgAnyl9a59WM9EU3qhikXOisuRJ4hmK8psJWixgtphEpN/Uypu01We1kB2brVVMVCVGtdNacoBD9djyHod76Z8uzRiaIshB1HdAcf9Gt/1NnUHyuomp+FyUNvileJDvbtdqz17mIjCExinXMO14mAhWZxtdC2sjOhFGWPVfQm/7FVsFchNgiAbBr2KblRLZkOYF7w9q/rOzAmGJNhctIdmPBszDueN3tsAphBYO8XP+aUh4S WU6H1Mfo 8KipvOizpmQOz9QhF05ryeSeran7kfO+N2FlyZs2bGGKMaqIezr2M5iS4AmnXvbz+5GNBoLWa8/9tKkormDgjt5e4PmokKEvqLKJz5KEaKiHPtdAASn7jACs2fRdwswO/bBYwp2ASbW87ewNCb41hJNmJHrD/Qtl4hlbyl4NPXnCNFex4wtNR43/QGBn4bmDAVUlq03eCGE547lkJblRtb4YozRJoKk2b4Py88OMyaUXkliOMIepdskSReJYQN00VcXyYsDBqjBhYlyPmkhjwGL6YveZ8w/h+i0dNJ2m3ZdxSa+vl4V4hSHOOjGeSKir0xlgfwQ5ns72hgXYCdWWp5VTbAgjeICFFyId6F4nFthWvSBrJyTNzl8AsCqUnmyqR8wqTXWMp3cctM29+cWbS3tZal6L+tFeJy6vP/RVlXYF0GqG6djIerTWaWD0Q0Q8WT4hio+rp9yFKZEhCFSYZAuI/2arsWZSdC2XkbkNVhOjhf0GQxrCDJ4GaHsekUvtCwy/UCk+Tco4lm7Jah474pyWK8sQBzIwd5NCSJPvup8vIvKU= 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: On Tue, Aug 22, 2023 at 2:15=E2=80=AFPM Chris Li wrote: > > Hi Kemeng, > > On Mon, Aug 21, 2023 at 6:27=E2=80=AFPM Kemeng Shi wrote: > > > > > Agreed. We assume pcp->count is protected by pcp->lock. Instead of make= code > > work in case pcp->count could be changed without lock held, it's more r= easonble > > to modify pcp->count with pcp->lock held in BPF program. > > The lock is holded when pcp->count is modified. It is going through > the kernel page > allocation API. The issue is nest memory allocation inside spin_lock() > introduced by BPF. > > The execution sequence is like this: > > count =3D min(pcp->count, count); > > /* Ensure requested pindex is drained first. */ > pindex =3D pindex - 1; > bpf_injected_spin_lock_irqsave { > alloc_page(); > original spin_lock_irqsave(&zone->lock, flags) ; > } bpf doesn't call into alloc_page() or slab alloc or pcpu alloc from tracing progs. All memory is preallocated. Can you reproduce the issue on the latest upstream kernel?