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 49057E77188 for ; Tue, 14 Jan 2025 10:19:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAED86B007B; Tue, 14 Jan 2025 05:19:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C5E6F6B0083; Tue, 14 Jan 2025 05:19:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B26B06B0085; Tue, 14 Jan 2025 05:19:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 94DB16B007B for ; Tue, 14 Jan 2025 05:19:51 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 4900F8085C for ; Tue, 14 Jan 2025 10:19:51 +0000 (UTC) X-FDA: 83005661382.01.2E6CD46 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by imf22.hostedemail.com (Postfix) with ESMTP id 46DA7C000F for ; Tue, 14 Jan 2025 10:19:49 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=DJwx3REQ; spf=pass (imf22.hostedemail.com: domain of mhocko@suse.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736849989; a=rsa-sha256; cv=none; b=RjVMtmUAJgvM+CqUX43rICDdINQaTHiJ+1/PpoY8bA2a6Mbx9nMZ4mEvbPfEKNq01GdCx+ VWGIZ+gnKMq3qd/u+7+mry5/UD+cLBPc6b+gHg2+8JyA3592d3uIx8Vl2qfaejcQcNuq2p bm6n6JBUwuJt4gNm3WnNH1TiH/uvavU= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=DJwx3REQ; spf=pass (imf22.hostedemail.com: domain of mhocko@suse.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736849989; 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:in-reply-to:references:references:dkim-signature; bh=tB/usraW3aLzA/dJfBvuFHhYSG+4wtC1f6I53Y/5/OE=; b=SUBs3HFrpZfoFHa4YfEvPfKnms96iA2CayTz/lXdSMluE1zLazf3RqyJYruYtHaSaoKpXS Ll5jG0Xh0Z+XhJkUCE19qotjLXikxPZie15x3xljTmtFMcxGQgHQo/X2arDrEK+JkU4TPI /106YRNsCADvGcSSDs/Zejd5EyyBYjw= Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-436345cc17bso37802275e9.0 for ; Tue, 14 Jan 2025 02:19:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1736849988; x=1737454788; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=tB/usraW3aLzA/dJfBvuFHhYSG+4wtC1f6I53Y/5/OE=; b=DJwx3REQGlxh1x0k/nxpMHcqaDUZgAm+LOdDngHvCVSsT5m+Wox3m99dmGteAUL4O2 HNAEQDeGzirAW6TXPDijL9E3c53DgSTLcSjxn3odWXysq9PFNeEMh/0P0HBuBTsG/RBT qJdX0h9tQHBDwG6Hgoi6o34vP/YSp6asdVJCQbosnMVuQzOcxZ5+zO05/2LpbfRBQjIQ 0/o4RbGWPMQMhPaMiXAnk5xdniKXTGTXyLbg/zFR3OhR8A1RfHOpoNhVt+r0o3e+cBRU bTrhsckJowvRv4FFP0jp3BcyhxOYfkHT/q2OR79lvsYIpNuIxF0ydfdgADgGM2QLwtHK FuMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736849988; x=1737454788; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tB/usraW3aLzA/dJfBvuFHhYSG+4wtC1f6I53Y/5/OE=; b=K/lePtig5ixxIq1GdBGGS6nVUNRCoG9OhgMkcq7Qwte+HG7uFUrur8kci+oLQt48g0 O/4GfjJ4V2CsQ5tCVqT/KqBXsBMVZEHCgL2ZZROqaOkoZ00/erqkpYHcmVYEAZUwjQ3z lTCJkq3Y30SSQWej+KMa3xUvZ5V/xziUcJeBkF96GfzdjVTglIFAFoYx7KpGtMpH9cic rdlxnJlMwFez6F13Vc8fPxtJheHRh639x7Mfo4NoXFQUfHC655CMTIOF3EQ+Qb0S6WOE BbODKkRx/dmSalaGQASonLUBZ9bZ/Iymk/Q6kmhawoN1pod09PecZIz4n6gd6RmAvPG9 Fftw== X-Forwarded-Encrypted: i=1; AJvYcCVY9PuDbKjLUWBdE2LFBt3W3pQ6cxbHGiOOM6wO69A1ZGYIYQfAKrMAoQ7+eUp1D+z2B8ivJAwrhA==@kvack.org X-Gm-Message-State: AOJu0Ywabtl1goB9oN9Nj3NH666UCYUi3uHqmfVbFXXRK5dm7r/VzhrJ s53kvrT3DMdd0le7m7ZdOEXapxGjpGeIBEStD423TLT+F9b1O6HsD6TEVhXe8F8= X-Gm-Gg: ASbGncuMth0mc5wjtgRpGrA+fp/UaI6XDpd2zRxZw94qp8aQnS2kCicv3Xo8uyuzrhe F5FnsIZQjgGokIA/zG9yj+xDXhc1Hj7Eoov8y04OVOf7FGlRVDR+MWhztlUcHCxrKxe1hD61MEx 0UqdD08gEZQYHSyCtTSiuNlrHmiF5/5EuWzmUh5qoUfB4LU1AuLrBSToU+cy5cVLWU2TGGwlESH /EIvdp+QmtC+em92KGb+49iIzviVthBWwG2UlUtyXCLGkw4yP5E1QERTjD6f39AtOL7tg== X-Google-Smtp-Source: AGHT+IGR9UOorxAsKZth07cxIyIlF4h8K72Pj5ZJAF/utsrHeLSxjHnrWRBncq6e5M5FRKkcXXuViA== X-Received: by 2002:a05:600c:3514:b0:434:a367:2bd9 with SMTP id 5b1f17b1804b1-436e26a607fmr245809195e9.14.1736849987813; Tue, 14 Jan 2025 02:19:47 -0800 (PST) Received: from localhost (109-81-90-202.rct.o2.cz. [109.81.90.202]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-436e9d8fc5csm171642105e9.2.2025.01.14.02.19.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jan 2025 02:19:47 -0800 (PST) Date: Tue, 14 Jan 2025 11:19:41 +0100 From: Michal Hocko To: Peter Zijlstra Cc: Alexei Starovoitov , bpf@vger.kernel.org, andrii@kernel.org, memxor@gmail.com, akpm@linux-foundation.org, vbabka@suse.cz, bigeasy@linutronix.de, rostedt@goodmis.org, houtao1@huawei.com, hannes@cmpxchg.org, shakeel.butt@linux.dev, willy@infradead.org, tglx@linutronix.de, jannh@google.com, tj@kernel.org, linux-mm@kvack.org, kernel-team@fb.com Subject: Re: [PATCH bpf-next v4 1/6] mm, bpf: Introduce try_alloc_pages() for opportunistic page allocation Message-ID: References: <20250114021922.92609-1-alexei.starovoitov@gmail.com> <20250114021922.92609-2-alexei.starovoitov@gmail.com> <20250114095355.GM5388@noisy.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250114095355.GM5388@noisy.programming.kicks-ass.net> X-Rspamd-Queue-Id: 46DA7C000F X-Stat-Signature: 8jtkzusk55e9pnxk3b7ceww3685c36am X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1736849989-166228 X-HE-Meta: U2FsdGVkX19I5wEjbiHjSM2hiEQHr/eZVVJ0RGom3R2/+uRREB94pwV3CpSRrjUA6z9XbEmfHSYBXVJPAYWUBotiEPrzIyiZE+YRi6UVEgIbPjcljSzn/MDfx+dW3tb9f0SbRdAYhaILs966ojZPlddb5i/9TCTIfQAKZ8l84gfDEso45xXzuvUcxL/x7Desegl+huKp2Z9+hueUu8M0KXRS+uYpp0eLBnEwOw/14EnmClEqhoSC28Tf1pS00LDhefwqPboUv5uTV6YyWbNrFtoUl09apQ4nCgu/habxaI/osQy6+vu47QgUN/ly6inp3KVB3Y78H9FAdWalJkBFe43kKnH0FkAEeF35mSLTTcr7SW5zQCnfO1KiTIlFH/7tXy0c9mZbHclz5pObc1tADoOGYTZSXvequV8d5CYnezeNF3soTur3/yUweyMOjVCLD0npzwK5xE9JCF+Swpy1jDqoe+SZ4nAJUuz8NC1o68NaKxS14JlBosOBypkoOlkYSYbFSDMeapQkJo1ppNlPMIrF6QO6ICyoPcjfzKYidZf6+XGO9XJeRgHJ8xyn7o9JyJP11dpuxL3L5bqXJXwEgrb81jmpbaZ1NLTDNQr5kJy/XcLVom0AVx3i0WszN84LjAt3TbcVSxBAUVxzE1zOulhEZyXnF5ee+0wx9G3DNP0y6qMUCX/urFVLFh7/5V2ovqsR+w9NkuQCJcFHVLdEqwg7G2qfzyIZt+I2VSJvTjMC1cAzB+JVDO1LPH7c3LcHwuH9sUtNjhgTrpU+x/pqqvqlHPpBm+xdywenEf5D5WB5FobAA58nMY5LfwcwsB0Se6MIAs/uLT5qlh54q0L+HaldBtvFvM+F5FPvl2eTuU1wm3xXkdsxOXrinNIh0JJ+dmByMfomuzzYKPUv5Y1QV23zmYnqUUr1JokCrIxaICDg6gmRs+LjgtO+WowMFMzlNF1tCNDIvgQJSZFd/Pk 0Y7vWDrs pJG9lTxwJLeKmgt7h3NyWvNYRD0UVh+TrOdsQ8joo63iViWUjWGUAbFdd5zGsH5NLuR4kEzyMjmKnm+1xyRy6ozDesnrkvHMwQDSJEXVCuP8YFxtXAm32mRl3JaPCRTHFsUuW8mkUNbt1rfh8IsUcrzt9eJyqpgqbbH9y9HbYhJsT8Jjq0JgnEvZuRkV0tRQgwsEc6BaWyFpBNRGQEhWmQiPzrpgEZXT6uMXjZOgBw7T/9cx6Pl4T7pd3/KkFqI7mDYP+hAqA+VWGZxSutr0m1ad0YhiPio/efbFF0nDmqalvA1FQxiFHVqbB8FGnyWLveKXIxv+HtQJnJNQXbLrkpGuV0tWPmznbL9F1GTaGUNLGbLcOtKjqK4OJO2f0q5A/V9y3ubl2e15d76dNdooCBy8EuSzC8EuSC7P4hoij+8vq/2IFbGL6d1s9SOLNnmpFPGj0RECbZIk914g= 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 14-01-25 10:53:55, Peter Zijlstra wrote: > On Mon, Jan 13, 2025 at 06:19:17PM -0800, Alexei Starovoitov wrote: > > From: Alexei Starovoitov > > > > Tracing BPF programs execute from tracepoints and kprobes where > > running context is unknown, but they need to request additional > > memory. > > > The prior workarounds were using pre-allocated memory and > > BPF specific freelists to satisfy such allocation requests. > > Instead, introduce gfpflags_allow_spinning() condition that signals > > to the allocator that running context is unknown. > > Then rely on percpu free list of pages to allocate a page. > > The rmqueue_pcplist() should be able to pop the page from. > > If it fails (due to IRQ re-entrancy or list being empty) then > > try_alloc_pages() attempts to spin_trylock zone->lock > > and refill percpu freelist as normal. > > > BPF program may execute with IRQs disabled and zone->lock is > > sleeping in RT, so trylock is the only option. > > how is spin_trylock() from IRQ context not utterly broken in RT? + if (IS_ENABLED(CONFIG_PREEMPT_RT) && (in_nmi() || in_hardirq())) + return NULL; Deals with that, right? -- Michal Hocko SUSE Labs