Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp2341943rdb; Fri, 8 Dec 2023 05:37:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IEJKMhDrhwM2939W8lDdE+Ijh3//pyUOVYyR/fIgHaY8/lsiuzjLuisL/k3lxeSUbMfbT8K X-Received: by 2002:a17:902:ff01:b0:1d0:6ffd:ae1a with SMTP id f1-20020a170902ff0100b001d06ffdae1amr9563plj.129.1702042679565; Fri, 08 Dec 2023 05:37:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702042679; cv=none; d=google.com; s=arc-20160816; b=CBFFAupsFizy8JHNWbisyUJ/5KvpHrE78HCXua56zfilXHrtJNG6u/qpV/oHPTRS/S xzLMOgWdweK734GhA70RHnE4RDvwn5S7iYcCOTtu/8fkNhs/Oxmey6jiAYfzydkbgI/S hmJ1ql+T9ZTMAds8urtl4EZ5CxM6ycZJuOulkng0NmtHNzQ3qpyMtnr/g2xKql6fzr4E gsWGvHNKm5gpzlWP13Hr7EcoLNx48oaiS5mTY28NmNSU7TZVurFoagObktL/KCe3YqqV vo9Syd/u2MeVsDSXBI5zep0LNhk0VG7ZkIIKjEElPve57+quhFxx0xy8JHeNNmF8gnlr uwkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=X4s7ZeiusFQ75+ddB/nV0kSaPwldS3+7Fx3c/bIy03Q=; fh=AIKHbXL178TJ8TTMSAOB0GmXlt5FHmL4M1sjO3Nv5y4=; b=vc+3H+BHNgTqbh0wOPfcoCMUkf7GqA2WrUt0FTJ5tj/lE5UsJnD5PCM+w5p1f6PCLM C00sdUZHwpbCkpGs3betXH2YwyD3yoqwPJQa7MKOK+bkY2Y+HfmbjRPPO1NNX0W8nbFM 9dAKTrb1hyN0jjjxzQlVqWFNCKYIsDJEN/FsW7S8cdYGGffTgZqLi5AI10BToIAH9OLl q1sAl3zfDMsj2jd1j/AJBiSA7ultSEIhcHbBS1ZjAXUKz3ENJvmonE7QrbgnxRkS1k+V R+zvOMCuRf8GPbfsbHCZofNAan7ZJGbS0bKFkMUsxDC1BXefHs/EilABjs9FoWEF84iD BIMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=ckcPMCyf; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id g2-20020a1709026b4200b001d2f0bf3dccsi660532plt.273.2023.12.08.05.37.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 05:37:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=ckcPMCyf; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 19E72810F6C5; Fri, 8 Dec 2023 05:37:57 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233485AbjLHNhn (ORCPT + 99 others); Fri, 8 Dec 2023 08:37:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229844AbjLHNhm (ORCPT ); Fri, 8 Dec 2023 08:37:42 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A4DC9A for ; Fri, 8 Dec 2023 05:37:48 -0800 (PST) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1702042666; 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=X4s7ZeiusFQ75+ddB/nV0kSaPwldS3+7Fx3c/bIy03Q=; b=ckcPMCyfSuCpSqtXfoCqtMj9Aog3OIV+xqlWeWzZsg/1bRLK0JLCy776M+ocBH6Gqi4bN6 8fU6LtLuLEQiB49+XKfQrZcNTAl9REPJ3jsy7rfuTx6RxbrSo/nu2/GOyPu7WCbxud12AG 5LbWq/lVX60iMTpWfFZxWpOXEjEUqbyXGxS8tPkR6eJGwBdC+47gWRzusyCW7Um3AYq9P2 wwrzv+bEiQllZ2yR3SsY5SXDTYq0JEolUqkgSQzBoqp6RQGpBOxIcgmX2Tza8DBLKzumKD vA1UXzGDp9pEU732dO8maW6npfU6zD5jgWNsW4QNd1nPMx8BtRkjfaI75FMRDg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1702042666; 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=X4s7ZeiusFQ75+ddB/nV0kSaPwldS3+7Fx3c/bIy03Q=; b=lVp7MsZn0YEOnHB4qDDzj52q5brZdaIkWK+lr+m9nTtHjaQWve0oJpD/DB3FNHM5ONC97i qJq69adjC0CKT9AQ== To: Borislav Petkov Cc: LKML , paul.gortmaker@windriver.com, x86@kernel.org, regressions@leemhuis.info, richard.purdie@linuxfoundation.org, regressions@lists.linux.dev Subject: Re: [patch 2/2] x86/alternatives: Disable interrupts and sync when optimizing NOPs in place In-Reply-To: <20231208132204.GBZXMYfLSaIbn3BvN3@fat_crate.local> References: <0adb772c-e8d2-4444-92b0-00cbfdaf1fac@leemhuis.info> <87r0k9ym0y.ffs@tglx> <20231207193859.961361261@linutronix.de> <20231207194518.401797191@linutronix.de> <20231208132204.GBZXMYfLSaIbn3BvN3@fat_crate.local> Date: Fri, 08 Dec 2023 14:37:45 +0100 Message-ID: <87wmtostli.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Fri, 08 Dec 2023 05:37:57 -0800 (PST) On Fri, Dec 08 2023 at 14:22, Borislav Petkov wrote: > On Thu, Dec 07, 2023 at 08:49:26PM +0100, Thomas Gleixner wrote: >> +static void __init_or_module noinline optimize_nops_inplace(u8 *instr, size_t len) >> +{ >> + unsigned long flags; >> + >> + local_irq_save(flags); >> + optimize_nops(instr, len); >> + sync_core(); >> + local_irq_restore(flags); >> +} >> + >> /* >> * In this context, "source" is where the instructions are placed in the >> * section .altinstr_replacement, for example during kernel build by the >> @@ -438,7 +448,7 @@ void __init_or_module noinline apply_alt >> * patch if feature is *NOT* present. >> */ >> if (!boot_cpu_has(a->cpuid) == !(a->flags & ALT_FLAG_NOT)) { >> - optimize_nops(instr, a->instrlen); >> + optimize_nops_inplace(instr, a->instrlen); >> continue; >> } > > Arguably, the proper thing to do here would be to convert the NOP > optimizing to the same 2-stage process as normal patching: write insns > into a buffer and text_poke* it. > > VS what we currently do: operating straight on kernel memory. Well, apply_alternatives() results in text_poke_early() which is nothing else than a memcpy() with interrupts disabled :)