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 6F341D374A1 for ; Thu, 17 Oct 2024 14:17:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D708F6B0098; Thu, 17 Oct 2024 10:17:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D212A6B0099; Thu, 17 Oct 2024 10:17:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE9A16B009A; Thu, 17 Oct 2024 10:17:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id A40D76B0098 for ; Thu, 17 Oct 2024 10:17:00 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9FBB141561 for ; Thu, 17 Oct 2024 14:16:53 +0000 (UTC) X-FDA: 82683295548.05.4655196 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf29.hostedemail.com (Postfix) with ESMTP id 3751D120024 for ; Thu, 17 Oct 2024 14:16:45 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; spf=pass (imf29.hostedemail.com: domain of "SRS0=o9TL=RN=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=o9TL=RN=goodmis.org=rostedt@kernel.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729174570; 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; bh=0RENO6sDDMYvvOCfRHws5B4+D5uhU/+pdf+qOzKG6CE=; b=hfI67E7Jh11SdQWcNnwOtNn3FjfCC8w+u6TpHLRQTAOIudkJcci6UZxHpoelZ1OwxLGrcB jW844rJCaCMa7MnUyuvYJVae7X+E65o/68rzztW0mN8QeXAhBpMoSJBvNgwr3Fdexf/pVX iIGtXJX74AjguhhcakE8TsxUMlZQdwM= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; spf=pass (imf29.hostedemail.com: domain of "SRS0=o9TL=RN=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=o9TL=RN=goodmis.org=rostedt@kernel.org"; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729174570; a=rsa-sha256; cv=none; b=x6sRP8Ku+vA8kC/2Nz+bqex6ifGPJnaw13ZboO61Wf5PWjeiD03WzFmQ2rvRZQEBDy5ZRD JEZV6RRrPvXwhHO+Hts4/RlexApQIvPkIctD9SPpFcGUTfa4vSkE4yRI7GP3yxPtKVoG/a 0lZOiBrnznoJ3mJtjT+FkEEQ8XAT67o= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id AEE875C4F0A; Thu, 17 Oct 2024 14:16:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E652CC4CEC3; Thu, 17 Oct 2024 14:16:49 +0000 (UTC) Date: Thu, 17 Oct 2024 10:17:12 -0400 From: Steven Rostedt To: Mike Rapoport Cc: Andrew Morton , Luis Chamberlain , Andreas Larsson , Andy Lutomirski , Ard Biesheuvel , Arnd Bergmann , Borislav Petkov , Brian Cain , Catalin Marinas , Christoph Hellwig , Christophe Leroy , Dave Hansen , Dinh Nguyen , Geert Uytterhoeven , Guo Ren , Helge Deller , Huacai Chen , Ingo Molnar , Johannes Berg , John Paul Adrian Glaubitz , Kent Overstreet , "Liam R. Howlett" , Mark Rutland , Masami Hiramatsu , Matt Turner , Max Filippov , Michael Ellerman , Michal Simek , Oleg Nesterov , Palmer Dabbelt , Peter Zijlstra , Richard Weinberger , Russell King , Song Liu , Stafford Horne , Suren Baghdasaryan , Thomas Bogendoerfer , Thomas Gleixner , Uladzislau Rezki , Vineet Gupta , Will Deacon , bpf@vger.kernel.org, linux-alpha@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-trace-kernel@vger.kernel.org, linux-um@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, sparclinux@vger.kernel.org, x86@kernel.org Subject: Re: [PATCH v6 6/8] x86/module: prepare module loading for ROX allocations of text Message-ID: <20241017101712.5a052712@gandalf.local.home> In-Reply-To: <20241016170128.7afeb8b0@gandalf.local.home> References: <20241016122424.1655560-1-rppt@kernel.org> <20241016122424.1655560-7-rppt@kernel.org> <20241016170128.7afeb8b0@gandalf.local.home> X-Mailer: Claws Mail 3.20.0git84 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: cg8icjk6x9w6q9nbku6bbktq89gsp1re X-Rspamd-Queue-Id: 3751D120024 X-Rspamd-Server: rspam11 X-HE-Tag: 1729174605-977334 X-HE-Meta: U2FsdGVkX18jvqlr+Fkxn/HE7iTvCHviNgPvnF59aCWO0Xtdvu2b3IzRit6cNE0UDgYy7rIHM43fVGSscz/OZpqrfrY9REaemb9KT5zm3pmlN+xUZmgFNnuWT5oU8s+i+FzcLO/VWml8aqOvBoO5uEzLCBaV1sJOuxO0R07zMDvgRgDdLhhLcFBT2gaq2kDiaKPXM/rzmGDxSlBPuzssKFtYZFesz629a6ILU0tz1rSriPT9sZxDAwExBEZDmimUldNxK3BJuCzmzxnIKgPs+seSmrMfKyhGqJKBgag21pS+ohkel3c91RvztTOCyuOgcrH+dNtgrH8Uh9ClxJiLm1Lj1DNWGRxjNrcz8Kpku+N0kx9T4ZBZE9kiLh14CKjaFgT+tuuRwDkXX1UQdxTgFZaBlObRG6KZLE7aYDM4455zjt4r0Hf8vCUL9yPAFNFypRzISvupt8DblMqPD0xF9h0i7YV9hw8M6HOIU11qiHcz/0zcdjTdmCHqK5fcWxZ6VFuq1xle7AxbFOsFgeayPI7NJxhl/sFBxyKLd3Ccr+544Xwg0g4leA00Qq5fx+TEH654a4W6Ooru5PS0r1Uho/jAZRV1SySVdV3wCCl8bFgDSuXIH37MwiDa8T7eXCsGazdDy6UimA/tkO5L1oaC8cKlLlx6yOrk5Zol6lvoBcqPSUaDNxNh4Ww6EEFLN/j+N2bQDfPkQmF/5nEk7bRR90l7rLcIHNazIRC5br66HPhU6xvqe38sFrBKNBmlk8d/dnC0CHu4UhLh51+MzDjbzVMw7t/yfcgs/af+uxHZmdYFZO6TWwmVDHAjVdES0g66wW8k0tMZKtyLVK68JCVLAhn3BgeypDx0EDIqTN/l7yxfNKrfIn5GHC+Vc4E1RWKWFgjtT8lPaUJlQtBh+bB9C9AU+F3ZmlZWU/UWVcQRMgXqXVUSCH426NnlHNosCgCrpl0bp3soiJTsaqrW6Re bJ64H3bs YKRjG9er2URkJvYEiGsDnW0DJqUrAX4Gnv2CDcaqNs5Odt1ZOkeo/yzZvv+hmh2SHlJBdiHUsAOUOZOAAK+3p0g2UlBNPJ3uuGpWiaF/7kjeGqyVDprfhB6bLI+JNqBzhTnnXLrNYux3D/7PXSeIfgkSB1ierlTCRU74D1EIaY/qzohbF1nmh03mn0TY0myWPJXoPLbNCRDuZsK4MnvIlj8S6+PgflhIyKqjoofF5rBeUn0wFR26s/0bC2CHo+fZvyyqyjkQgM8JTdi9um6/Yyqw/7wsD/YkyYf0IXNkY18lRMxM716TWiMJ/9Q== 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 Wed, 16 Oct 2024 17:01:28 -0400 Steven Rostedt wrote: > If this is only needed for module load, can we at least still use the > text_poke_early() at boot up? > > if (ftrace_poke_late) { > text_poke_queue((void *)ip, new_code, MCOUNT_INSN_SIZE, NULL); > } else if (system_state == SYSTEM_BOOTING) { > text_poke_early((void *)ip, new_code, MCOUNT_INSN_SIZE); > } else { > mutex_lock(&text_mutex); > text_poke((void *)ip, new_code, MCOUNT_INSN_SIZE); > mutex_unlock(&text_mutex); > } > > ? > > The above if statement looks to slow things down just slightly, but only by > 2ms, which is more reasonable. I changed the above to this (yes it's a little hacky) and got my 2ms back! -- Steve DEFINE_STATIC_KEY_TRUE(ftrace_modify_boot); static int __init ftrace_boot_init_done(void) { static_branch_disable(&ftrace_modify_boot); return 0; } /* Ftrace updates happen before core init */ core_initcall(ftrace_boot_init_done); /* * Marked __ref because it calls text_poke_early() which is .init.text. That is * ok because that call will happen early, during boot, when .init sections are * still present. */ static int __ref ftrace_modify_code_direct(unsigned long ip, const char *old_code, const char *new_code) { int ret = ftrace_verify_code(ip, old_code); if (ret) return ret; /* replace the text with the new text */ if (static_branch_unlikely(&ftrace_modify_boot)) { text_poke_early((void *)ip, new_code, MCOUNT_INSN_SIZE); } else if (ftrace_poke_late) { text_poke_queue((void *)ip, new_code, MCOUNT_INSN_SIZE, NULL); } else { mutex_lock(&text_mutex); text_poke((void *)ip, new_code, MCOUNT_INSN_SIZE); mutex_unlock(&text_mutex); } return 0; }