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 4F8DEC0218A for ; Tue, 28 Jan 2025 18:09:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D40DF280242; Tue, 28 Jan 2025 13:09:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF133280222; Tue, 28 Jan 2025 13:09:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB86E280242; Tue, 28 Jan 2025 13:09:26 -0500 (EST) 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 9A5C8280222 for ; Tue, 28 Jan 2025 13:09:26 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 10679140327 for ; Tue, 28 Jan 2025 18:09:26 +0000 (UTC) X-FDA: 83057647932.04.D84EE3F Received: from out-182.mta1.migadu.com (out-182.mta1.migadu.com [95.215.58.182]) by imf30.hostedemail.com (Postfix) with ESMTP id 2E0798001C for ; Tue, 28 Jan 2025 18:09:23 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=YI5hZtm4; spf=pass (imf30.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.182 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738087764; 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=NMNVtdoOiiJwZdxUc7AuXSiKJz6d1qLJ0rKkYN+iS44=; b=kc338IUbnZpba2PnbzM4f3dBE2lEyyiRklG/1r7ccd6a9fi4P6m3DrGNLAhcjTZt+TA0hJ lmf8A9ol7c1k4s61IzcCU5lxcuCYUNDg6WUQwijHeh2PiHrmzg72IpkPiyuAxq35ecSr+j pQ8P6a1eXCFWnatzcxBWUoGJHaaE2uA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738087764; a=rsa-sha256; cv=none; b=7SHagHRRaTqurdx4u+BYqzqFHqMZcFS7nigI21Nd73y4U9v2w7Im8Xn4MyzejiLPzFSxQY JmM7t9aXY5fjQbh214Tb76E/vZe242JJtf7Jk7k+xR+U+9I9ZHsRaSH7VheMcSj6NBGdpj 4tXOLUytZgYIqQ3BRqJAbpwi0cPM16k= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=YI5hZtm4; spf=pass (imf30.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.182 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev Date: Tue, 28 Jan 2025 10:09:05 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1738087762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=NMNVtdoOiiJwZdxUc7AuXSiKJz6d1qLJ0rKkYN+iS44=; b=YI5hZtm4eC3jSHGxtikZmBgF6/JzhZ52EzoW+botP7fF1+/ycnqA039CDOjiP01F81WegL WDXddekl/cO/sM5cPVt97dxpVvqJJowZ7xPQ/UMeSTlVM3qtahZZpUA0hFEJ7d7ps4mGx9 f9RiwoJoWYjIAGP8raDH8thDJDiRfBc= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Alexei Starovoitov Cc: bpf@vger.kernel.org, andrii@kernel.org, memxor@gmail.com, akpm@linux-foundation.org, peterz@infradead.org, vbabka@suse.cz, bigeasy@linutronix.de, rostedt@goodmis.org, houtao1@huawei.com, hannes@cmpxchg.org, mhocko@suse.com, 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 v6 1/6] mm, bpf: Introduce try_alloc_pages() for opportunistic page allocation Message-ID: References: <20250124035655.78899-1-alexei.starovoitov@gmail.com> <20250124035655.78899-2-alexei.starovoitov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250124035655.78899-2-alexei.starovoitov@gmail.com> X-Migadu-Flow: FLOW_OUT X-Stat-Signature: ys3x5gzeegsts77brdff5ogynu8mgsez X-Rspamd-Queue-Id: 2E0798001C X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1738087763-638518 X-HE-Meta: U2FsdGVkX1/iNQOnp4bg/mhBaWNNyr8a07Xlnt7gt4JYBr8IMHfvf3MoGIJwC3a5oROprlIq/DdLr76I+At8l/50vB4YjL8g9T87F663TBvkOEqCHJZln0t7PkuMstUaGNXQjAWaSwR69zwBI2buwZe45cV4dWcjFc9ouJK9QSsUHZoPkMyBdtaj6l5qMFcyILKd6E+3l+Y8um747jvu4Uhf9AEXSo0qhyYGb91xJurYXa5aiqJBKwk5kXRURuA47XlXv3pi5qLonLRNJqUKvpW9No+NsCXhBA2W3jDnbDzSFNdKAg+bGS9RjBpsg8BVx+QBxgie+9hCEj879djgY1LZUQ3JP3D1VCm528Y5l/JfhKlZ6d9Iqj8ODHN6AT5Xg8WGnjgAXj7LCuJ72ou8Wyfi9T4D3JNN3Q1sIdV7xk/ELFjKSMsZEvlYSj8DksZj0S+4W8aTgSwf/UTxZaAgV5FB6Gr50KCC3DA8/EC6OAq2tSVW+7An48n+4xrNqphVviHvKimJ/Z/YYJtaXKavbdb1tkxAnYK5DVa9gscYZ1KPfZ1KRl69ftQWAZL6cVB1Bzj7KyHM3MKJin+ORnpf3AUozCeM1juAYWISNiCcK72oPMdWm+JYp5jAND3iDHLdOnFmdF20Ut6rXNxbbbbAZXfkToZxL12Pve5qxuyF8evzpgY/NdPQ5B0GU/CBQS2XUm/hI5j4KfGCjW/yvnxEcPrxcCDRjxc4QDFFBLmLcsboyq6NntG5p0IQHki1JHsxlNadeJ9XYACKriwOOSCs4DuJyoT9WxJ9IMwf0gIg8cBCwdg0VfjtJbDqOm+txNPXciq8+vfvp6MMrhftedyydoafWkFgpuRoypgz/WfwJNAzzbalHyXUzYdcAwXej2oQrEapUGGQzzpK97xmv2uDU+M755NfMooJ/PWXy55jZ+iTqJBemW8Yv6/a/w4AV7StOVcl8nM/re6yqHLw9dU vuRptxpK cS55Gprttja6lBVEE6zwrEquyRdhKwmLinwbxsE/Ecl/mSf+Ka3ytd/UbWO5PJXgyGmAiV9a2v/PkEjjwDHrgjQigNXdGCri4frdnxbqVA+wyLdjyqoM/K1Dq8DT/xs3PK61VRQxuLAMhTar83ZSf3fBVjFB8HXQgW3aV3328b1p5OCKg+xgM0rVPWECumVh0FfY9uvkNzOku9qhuVLHyg0rXtVoTfDPBefqofZl604ZuX4nH5tJOYxh3wMZ/1r1YAVs6GEEZjEwSuxmOS7TiASSaHyVyiGJhKMtM84AtIg4sEN2WY0Sy8yYG/3kuIkzEj7dBP5dNNQDbap++0ciiUuJph4PD8Z6VmswzbBH+hJz7k1eI7H2VjiOC3PDRxqrgPLjsMKYdM9XafYyqgEoyXURoQziQWM98JQ9UByV5+jpJNpMh2w252YEGjoTFmpmP02Lo 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 Thu, Jan 23, 2025 at 07:56:50PM -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. > try_alloc_pages() -> get_page_from_freelist() -> rmqueue() -> > rmqueue_pcplist() will spin_trylock to grab the page from percpu > free list. If it fails (due to re-entrancy or list being empty) > then rmqueue_bulk()/rmqueue_buddy() will attempt to > spin_trylock zone->lock and grab the page from there. > spin_trylock() is not safe in PREEMPT_RT when in NMI or in hard IRQ. > Bailout early in such case. > > The support for gfpflags_allow_spinning() mode for free_page and memcg > comes in the next patches. > > This is a first step towards supporting BPF requirements in SLUB > and getting rid of bpf_mem_alloc. > That goal was discussed at LSFMM: https://lwn.net/Articles/974138/ > > Acked-by: Michal Hocko > Acked-by: Vlastimil Babka > Acked-by: Sebastian Andrzej Siewior > Signed-off-by: Alexei Starovoitov Reviewed-by: Shakeel Butt