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 AA2A8E7717F for ; Fri, 13 Dec 2024 22:02:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3CD536B00A3; Fri, 13 Dec 2024 17:02:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 37D6D6B00A4; Fri, 13 Dec 2024 17:02:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 26D6A6B00A5; Fri, 13 Dec 2024 17:02:22 -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 076096B00A3 for ; Fri, 13 Dec 2024 17:02:22 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7D36CC1221 for ; Fri, 13 Dec 2024 22:02:21 +0000 (UTC) X-FDA: 82891309578.16.62C4BDF Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by imf26.hostedemail.com (Postfix) with ESMTP id 942BE140017 for ; Fri, 13 Dec 2024 22:01:59 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nGFfmZ85; spf=pass (imf26.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.41 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=1734127322; 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=2ZPWyb/XBe2yMGIlqJvswQxBEjkMyLRKAx8FUxbp8UE=; b=b9TSG5ZV8BNoWPg9ThO3LxiapK+Y4z+ZWAlCXaskrLwbyMuEFiDS6/0c0cvtYPBV79yhpT MkFn+VzPhUl3FXTU7kRH/btskCRYW2dJuDConP6teeonkV+QxUJPFPK4LK5HJlwl8vwGBN wKdDLi6v8i29TrirDZTxVnQgwu8g0p4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734127322; a=rsa-sha256; cv=none; b=AfcIohYZVgAV8Sm6T/oLdHFPgTn2OMeyIVI6m15wIysv1yrXjNtqrfERBblbL7IyPCkRZG XQQK1w1+7yl4/gseagKsNKn8zVXSvAhk0j9p10XHLYLDDnRL5vthY2KUV0EQE7c0r3ZYha Jn7FisAmoMvIP5CVgOx2xfGUomv9/gs= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nGFfmZ85; spf=pass (imf26.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-38637614567so1044652f8f.3 for ; Fri, 13 Dec 2024 14:02:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734127338; x=1734732138; 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=2ZPWyb/XBe2yMGIlqJvswQxBEjkMyLRKAx8FUxbp8UE=; b=nGFfmZ85g/ccejFdsGOWccWfNTBXrZUZcDYAa4g3HMhvFuTWIhmfDQefQnY03g1a2f JnJb9kqtt7wku75/P5IFNmEjZ5H5t2VBSH6Ira2A/ckMrGJCB+I1L/egl3OWWtZocIXJ XgxgVtEX+xLYdbXWCRi5WYXtp1Oue2binXHsHquvEo6Km3qgBCK5sd+M4EngeYDTEpAn De7hGCK2NqU8Hh0TaXe6JkVBKVWkBpASNEuOpQy3ikDSrsV1K8NHsjdlONTNcUstN038 rsdMVi/OtX7kXWeFxT7Nef6e5wuT/V6G4sUhxiR3CsYyipA3WJaNQD8q/6bZ2iddlnPI gDIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734127338; x=1734732138; 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=2ZPWyb/XBe2yMGIlqJvswQxBEjkMyLRKAx8FUxbp8UE=; b=iS9+oXMM4RsurtOyJtlUZqGmFIeTnRULkLn3JvDMTJM9eTwsjMI/dXduXk5v7XLTX6 FVX5u5Xg25X7YOFpvPSFlqbe1Bz/O345E2hiuVyBQTHwQQ/jJfGoWxA80DVRymCtCUmR nzIWEey72zOthEuVaWttJsBbf1/am2qDjyr/RpnWys1r/US3wv/0qrU2XaLtMAyq05wV xDrR12li8w4DS3Eq1tCJUxbCDgconvlNqzbZmkYl6r6OFPKHcDfXLhgkqWRGOKlYmhat cgmueg0Puy5wvKNpWyKExFc6FqivezfZT1LqRmYY0SwOypSKj3QPPbXiGShCdB+4EATf V17g== X-Forwarded-Encrypted: i=1; AJvYcCXV0mZ9P+0fbgeOL/BqVNj7h4FFRHzRNez5Bu0lJPXGOXNCn88Sytemq2owrfbBwaBKbHhjn8eykg==@kvack.org X-Gm-Message-State: AOJu0Yw8dXrK5krhs4kVGj0fF8wGzRS3S4nESiuf/qymBhArxUt9uW6y 2qsC0aVJVO4Uqc1XbDcUJRwOrddE/8Qmv8Kj4CGGT6HdIlSmWM0hZ9X4gy3aRb99tLaHUl+woaZ XJ5QBwc2FM9/d67Q1VRR+p606HLA= X-Gm-Gg: ASbGnctSX/lWtrELFwfKNJapZ4KS0yx+UHBML0Gzc9HT3TObEGFEOooLQuqKnJdwb7b 35rJaqz+mkXoq965Je+K08vEZLiTx00eiHdfCNHxTGrB3Yn7pcSiwlQy5WGscODuWdSfdfw== X-Google-Smtp-Source: AGHT+IFc228SMWCKYeO8U3tr5A9ta0NaRWjjXCjtD25Q9yW/nNmkKfc6XkNTrLI/IiWCfiuU3ymPX5f7HT3xzOCZpHM= X-Received: by 2002:a05:6000:794:b0:385:d7a7:ad60 with SMTP id ffacd0b85a97d-38880ac4e7cmr3402530f8f.3.1734127337590; Fri, 13 Dec 2024 14:02:17 -0800 (PST) MIME-Version: 1.0 References: <20241210023936.46871-1-alexei.starovoitov@gmail.com> <20241210023936.46871-2-alexei.starovoitov@gmail.com> <20241212150744.dVyycFUJ@linutronix.de> <20241212153506.dT1MvukO@linutronix.de> <20241212104809.1c6cb0a1@batman.local.home> <20241212160009.O3lGzN95@linutronix.de> <20241213124411.105d0f33@gandalf.local.home> <20241213150950.2879b7db@gandalf.local.home> <20241213160035.677810fb@gandalf.local.home> In-Reply-To: <20241213160035.677810fb@gandalf.local.home> From: Alexei Starovoitov Date: Fri, 13 Dec 2024 14:02:06 -0800 Message-ID: Subject: Re: [PATCH bpf-next v2 1/6] mm, bpf: Introduce __GFP_TRYLOCK for opportunistic page allocation To: Steven Rostedt Cc: Sebastian Sewior , Michal Hocko , Matthew Wilcox , bpf , Andrii Nakryiko , Kumar Kartikeya Dwivedi , Andrew Morton , Peter Zijlstra , Vlastimil Babka , Hou Tao , Johannes Weiner , shakeel.butt@linux.dev, Thomas Gleixner , Tejun Heo , linux-mm , Kernel Team Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 942BE140017 X-Stat-Signature: 1g1ca15futy6rn99c8uu5oc5dq68t4x6 X-Rspam-User: X-HE-Tag: 1734127319-787518 X-HE-Meta: U2FsdGVkX1+zKslKsweAmaREFwb8+hxQhqp9lMwJpAOZFZYGRJHgD/HVMDGb5k7RLsBFlqHw5Pm2Itfup710OQEdliE7eFiIEPX7c0VoQHvKJ5jjj+B2XxFZbB/8xRB8+IlRNri0nNy8r5xFZ/z4SGe4hV4aPgk3YT8HYq6dHsOZRy8NpWEoaY5+FPLX+0S0ha+scYeDRi5Ih/cHoY61uoW4VRKC3geuvzAY0I/NRIZCrYTC2UP25B0SNqWu7qwGmiGGvDg+WnzO1WvaX0wmqVrLk1uNV2ZQWD6ATcup2KHWAGEx34xZn3bbXdkciViZ+n1Wls3PT0fhQBZCgZQpGIY0pdPEScvlfu24LbjxFQ2Rovox/i07ZKopq26T9iS+AN47h158nehgVnMui/2P+LDrhWYifgArce9z95TH84O0xaitVEIdXFVIcyWzh07b6olFuCZN74DczIuFYi7/tIBBcNMsZgcwBraNMHNLw7c/TnDrQg3sSrZlZRq9tCLyA7z7FaqWo0Weh7hL6LNmPP2+pNcORxTKEdwyZ6YaCmQ2t04B9UaKCV/gnz6goWas+pVi2cvJigwSjTrTMnNzQegGcaesTVP1/Xcf9yqlsDr/yWJHF+cIvvExJ6oi4q/zTB+KgFeaxuZqrglfN2oPD0/bkwrAU0VzKHTuW4mqQpVOXbpLG5byjt+XxvP7S+efpgukSJMAtz1Y8fU9L5tMQuVkhbYOfYay2eb8rV4k3JI7jLB8frEktLROUjIwF4KyIuwCqNBHlG61AxqGptx/A+G5MuOC5DqEA484W48uWW/P6jXpLpufONRnSq/nuIdTcvtHnW02sYdeqZZ7hGbiKZCD9zguEMYu9QFMEslNXK/3+mU+/wAR7vGS9lAj51mJ7g+2oOtd12ksRh8sCEEGlZe7z1sYqA19UJIPgMJvfcNErzDbXe1/2f2fW3CVrU27qVn565lC51hS4/ApJhq bQmnDk+U FZVp9gRK18dZagzZtMozMf/kcCzlJbDWRsKKmiakWGcNtHeJJkzWFdX4udQP+owYkZgmN7f48J55/CGDCqSRz4PYNWQfp3PR/Fb1nnen/ScuOSpmtZbDqepMKtgHzHjvNI7+xoGXXfPLpOIiU9ZsGpYCD4RGud4p945ztTePPgASxcziyafkI5fhSzuybUYhDYOMMplxI0d/2Fq6Y0ZBk9BOaalq97VJZPajtU3o9cvtzKfwdSeR2pcN9QIZm54Iif+trv7SPX/wylE6nJ4wdqV+5AL3o02xBWUgx5NJRbETffBFJuO2VxfEpWF0dp76jZfSVAjC6wkO99GDRAcS5LQ4dXGUP4HSgnAahb8vjKpT23XqXBG/QZP46kTQYa5kHWyB+qjdnaY2N3m0Cfj8p91S4O8WJgLmMSRKCRKqIBbl1IPP/jRcINLqa+aQx7A6HFa2U15A6/Sxphd0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002162, 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 Fri, Dec 13, 2024 at 1:00=E2=80=AFPM Steven Rostedt wrote: > > Again, allowing spin_locks being taken in hard irq context in RT, even wi= th > trylock is going to open a nasty can of worms that will make this less > deterministic and determinism is the entire point of RT. If we allow one > user to have spin_lock_trylock() in hard irq context, we have to allow > anyone to do it. The boosting mess is a concern indeed, but looks like it's happening already. See netpoll_send_udp() -> netpoll_send_skb() that does local_irq_save() and then __netpoll_send_skb() -> HARD_TX_TRYLOCK() -> __netif_tx_trylock() -> spin_trylock() netconsole is the key mechanism for some hyperscalers. It's not a niche feature. Sounds like it's sort-of broken or rather not-working correctly by RT standards, but replacing _xmit_lock with raw_spin_lock is probably not an option. So either netpoll needs to be redesigned somehow, since it has to printk->netcons->udp->skb->tx_lock->xmit on the wire, otherwise dmesg messages will be lost. or make PI aware of this. local_irq_save() is not an issue per-se, it's printk->necons that can be called from any context including hard irq. For the purpose of this patch set I think I have to if (IS_ENABLED(CONFIG_PREEMPT_RT) && (in_hardirq() || in_nmi())) goto out; Looks like it's safe to call spin_trylock() on RT after local_irq_save() and/or when irqs_disabled(). It's a hardirq/nmi context that is a problem.