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 B081FE77188 for ; Tue, 14 Jan 2025 09:54:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3C67A6B008C; Tue, 14 Jan 2025 04:54:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 37F176B0092; Tue, 14 Jan 2025 04:54:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 23D4E6B0093; Tue, 14 Jan 2025 04:54:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 06A356B008C for ; Tue, 14 Jan 2025 04:54:07 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B778912086F for ; Tue, 14 Jan 2025 09:54:06 +0000 (UTC) X-FDA: 83005596492.21.078F650 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf18.hostedemail.com (Postfix) with ESMTP id A004B1C0009 for ; Tue, 14 Jan 2025 09:54:03 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=jBcQ0fPZ; dmarc=none; spf=none (imf18.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736848445; 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=SZJLJLswXhcQCEtLeIEo9quwfmYnoCb4KMf+b4yGjRY=; b=d2v1q5Riec6T5jbUHgr/oBQHj/gBVgtkBzGH8xK99n/G/7fW7uq+TlGeKAjoBGpmJUteqO m8NbwZ8tFMLGckHhzbMSSZYeljNHX6NvAXY/xYkSRGYaEFhv450h+gW5lItkI+gLf1ZDix xJ5PXaeO9bkbor6FXdf3X6nb4nYzn4Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736848445; a=rsa-sha256; cv=none; b=s2YDwTCOfa8MC10tPukG/gYaX6/J3oBEd0Kqdmwco9qjzrRPYqBONlv1egKWjsYhwR0Lal 6VL3l7pwu1vRegykqceVcW8C3AHQuuxKWLJn7HAL6XhBlYV69nvF+Y4MY2FzNy6Im8kxPz /SWbFdD9II9AhD+MiwfCx7IxJm/jm9k= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=jBcQ0fPZ; dmarc=none; spf=none (imf18.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=SZJLJLswXhcQCEtLeIEo9quwfmYnoCb4KMf+b4yGjRY=; b=jBcQ0fPZn1V1WYb2Sa/L4qcCVW XR9SzmpAubh4QkljK11sgqIXAL0/py4vbrF3kJJeYR3CtX0+k6Ssdvi8bsPA9oCBsBmZDvfv8IUmt VrbSgr3Xq8xMBSJONWJFEWLR/ypumKGqM3OnDFLz2Cl0uv995l3to69uOycsyyIPUYldZ1qwskTU+ Is1I40b1wLwveB/eoHMkyEShDx6qx48kgXBHOEUE9VLRfQzzI2lhrrdrRv95AUqNd4mR+DwLRA7ay tPpSXjWWFr2c2kW5gBxCcsL1vRq0R9h24LYurycCXr1vcyUrymvCYE7BD/d8h1o9iSvpV7ndjYRNd FqR8dmZw==; Received: from 77-249-17-89.cable.dynamic.v4.ziggo.nl ([77.249.17.89] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1tXdcR-0000000DR90-38eJ; Tue, 14 Jan 2025 09:53:55 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 5678E3004DE; Tue, 14 Jan 2025 10:53:55 +0100 (CET) Date: Tue, 14 Jan 2025 10:53:55 +0100 From: Peter Zijlstra To: Alexei Starovoitov Cc: 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, 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 v4 1/6] mm, bpf: Introduce try_alloc_pages() for opportunistic page allocation Message-ID: <20250114095355.GM5388@noisy.programming.kicks-ass.net> References: <20250114021922.92609-1-alexei.starovoitov@gmail.com> <20250114021922.92609-2-alexei.starovoitov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250114021922.92609-2-alexei.starovoitov@gmail.com> X-Stat-Signature: kgmuecqz1bjinzob76qb1uct1146k9rf X-Rspamd-Queue-Id: A004B1C0009 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1736848443-504540 X-HE-Meta: U2FsdGVkX19mEVX86TVipcYOTT3c5sVwNbWLFpEDf5+Ez3JxgUK0sAASPNC1TLBj4P4AaV1zqUf4x9EvMNIRx+D7HWKJy8SQX5+66KP/D7m3QYcVJnZbzEA8jlnRbn5GD1/4PRFBTOBcKh7W3Mk1ihSKnhEzuCFHAWvDN/qM55hKt4JzMUys9GHS/2SG67OilqYv+0B9ma2+Pk2YF9Z5f4T67Wn5fnCsQsTnEpkA92ceOglE9yc9wwQ8y1dHpHgWKIgxxXJwOj2vX9ElbCC2Ayxs9KCZvjFw/SdFbX4Nlse59xJm/IOUsX5J2AKhwvtadlyaGYDpIzFQNfd+RGmpfOi12rttFL5mnNfQk3t+TrtnMt5TTwUg0jaHCN8JxABp5iGedR8y2EHOLe6VUzF/jYMn9kFz6Kj895sE/3S+WHLiGVwxXrPk92PPcXxFTKalXPJdrwJEc9ovFR4gSgMnApm/Bdw/1oePaHvKZ+e9lswGJ+T2WWDvLtPvngHpGTOxKdcMgwbI1Vl3BvaiNEdFK6fZCZ4iyjF5IXjo4pTWBfr398WsKCrEGRz+JGU+7kSxWLfjHL0V/9+Aah8QDSqtZQWf61XoWyO0v5NnxFGmlrlE1D3/C5XWgyAnPeGZ+rJrfnkjE2FyW2Bhqgkix/YgMppkc+ZXF6NYwbB/zfWZLCVYd5A9G4GDp9W3QkJjAEHHq3hIhfDEATGeHyfxPR3obcxhTHnMTmSj6o18EpCNIBmX8bgLyHYq1Rc1oGlYR8RJxES1VGCKKHq0GAcsi8MS2lgasOr4iE1ms8toak6kk7W4BWIPP+4kztGtS0+wIQJSYjNdgJBdUwgu6sQ48ksg7lQ4dKK7V1jt63PTlSnLqNlJju51FRJVlerPttMNWQ2ydte/LyPJYo9+7zJN1kugoi9rY44yEFxnACPQIujVvXXb1rzQdXHXlc5rDs6dQ6wcKI7hSnMZU27Zv2hLJ4V y1ohZfHd tGlAN2Rna5RFdoIvekV7CRKQ97xcgJOV+Ccbfs4lWVK0JGXGnTnXEkqjWCNFsRs9vyuVuUBGJ5aGd2HlmxPWe8K+XT5qk5/64nxtzXU6TB5gQg1/lDXAE2cG0NEx7qk28lDm+iBnTL+7HwmiY79/hzS8NjQeBLn/YXnAOM3+Ud0k3jDhZSs3HR+qlWyuv/7MabTzZX9CMVGgMAGDFt2gyPhwNRlpTxyhIDm+TyrwdSIcaGJAINnINvCJ3P6qdeoqaI/grM/Cv+4336U6url7yi0FM8dL9wc/QaTwmoNeywp7RliNH01WDeXOUMABzMlVtn8EoJVXmizOIiZ8= 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 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? It can lead to try to priority boost the idle thread, among other crazy things.