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 14ECDC02181 for ; Mon, 20 Jan 2025 13:53:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4E0966B0082; Mon, 20 Jan 2025 08:53:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 46AEA6B0083; Mon, 20 Jan 2025 08:53:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 295856B0085; Mon, 20 Jan 2025 08:53:34 -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 078206B0082 for ; Mon, 20 Jan 2025 08:53:34 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A3E2880125 for ; Mon, 20 Jan 2025 13:53:33 +0000 (UTC) X-FDA: 83027972706.24.864952B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf01.hostedemail.com (Postfix) with ESMTP id 56E1740009 for ; Mon, 20 Jan 2025 13:53:31 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=eGDHOXeG; spf=pass (imf01.hostedemail.com: domain of vschneid@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=vschneid@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737381211; 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=6OUKdt6VXAQzpOTUFB26LmXUDO8O/oST+Zn2uKcAtKs=; b=4F0dG11nj5i0fw8ffBUDFz8ixHOqvZlEXGhzJ64Oq3ZSJ/GI0bA2PEsvJgbsSo1P2BS/Fo dqmgxu2rvDh2ZziRUAQakNoa3BLz/wUGaiLo9J1xOo4MIMMRxIe45beyzRBpc5L30kDvr/ RvI28H4fk25SA9Xrf1PE/WVz4/4gkfg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737381211; a=rsa-sha256; cv=none; b=vivmpNWfDdFfC00rNLUuncoNvth0VDwlSXGRYKcQfQNZVxjtWYbk5N0+GSuaibDpNeKUB5 ByvQpImCmNl8Ro4f99QuTd3SAiTggPeX+FqAxmtK+4/2bXCpi9aZQVfARMWDUsWE3bFy87 8xhh4XZ2nGK/5d20bBrSub55py+OX4U= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=eGDHOXeG; spf=pass (imf01.hostedemail.com: domain of vschneid@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=vschneid@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737381210; 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=6OUKdt6VXAQzpOTUFB26LmXUDO8O/oST+Zn2uKcAtKs=; b=eGDHOXeGpR0jSKvHT5MBkJQHXMkMHJjrO/ODuRg5+tdN5vwxwkP5D7crDRlIYgMqpJ/ZRH Mgv+dY1h8sVNw6GaDZ5g5/KruDz557TqFehXyGhq67R0z2CdocTOLD1xCXDhfTipTZGWGs N0NKT0mZO49sGVe0K2zIRN7scilZ6Qg= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-642-L88vGN48NImS1sUvC3hB0w-1; Mon, 20 Jan 2025 08:53:27 -0500 X-MC-Unique: L88vGN48NImS1sUvC3hB0w-1 X-Mimecast-MFC-AGG-ID: L88vGN48NImS1sUvC3hB0w Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-467b645935fso81662481cf.3 for ; Mon, 20 Jan 2025 05:53:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737381207; x=1737986007; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6OUKdt6VXAQzpOTUFB26LmXUDO8O/oST+Zn2uKcAtKs=; b=GbU5wfLvrN0icL3cI2V5oKihWdgGslFxjTdyOtRY/pF3RS8p5dwm+w7VhdgryeWAB3 cNkB8+ZEhOTfjc0JGE6CP4o9lhA3cBuoigoId76nXeI5gvKkOVhisthx3aooy2Puhwm3 xlidKCWjonh9yGPpvZUCdh1Kzxu5ZvccQYEyiR44gHRXUOOzSGTR7hZdOM4/Wovh1cHN GYRZS0D7w+KZsvjFx382YGi4RA2T8Tpf9clpHzUzWNfG4L+hY/x74dH+7YQUjObypqTA tD+X8ENTyc9oXRiqeNo/+L8Jjhh6xH5Z7I9jEkTq/OoCTlH+fdmsY0a6yMY8/jfcML6u AwZw== X-Forwarded-Encrypted: i=1; AJvYcCXKi3qNpguexS/WzrPU3DFciM07PzCKvL5lwR4AqSYxkP+fFeBc7Lp8TLKYN2zYcjZST+wHhBVkXg==@kvack.org X-Gm-Message-State: AOJu0YzeflIvTtJn5fxQO8Eq6UsUox/SX3oa6MLbSCY9ASEL7/6CpvTY weti/QD1xJ1qPLXNY+suuMv+8wR2cZ4ykZ9t+zIAr83pLNAOwMATs1JV0WcZ7yyYhF8SCdbmDSS mTI+5BQ+I95XDNVYyROX4P1rZRc+XGFLCDwePPKoZVDwUXgB7 X-Gm-Gg: ASbGncsEbIHJw3k7tOOMV3igL7xBUMDQZG4ZiGsmH2fcSegofJUWsUOyR6SK6VTzJjH M+FW956DyNYByz3WSpHg0SH2fMUPh42CY8XNgUNamlmexaMB3uV7DwE0hnOyejZwTnPg+ui9hld mWa1HdzytRQU8FcTV9WYXsgwVGmO3RrelVEALonQwKs5UFLQ17IFibK6Q4aZaNT2d1PF5pj7FCx JTpYdL14nKLo4p4gGTH6XLW3JP2LvgHI7IyOulvTUg1c8ysdvCmvUcYurjPmCejEUWkeU+xu5mB 5JXKnA7BhA4vUI/HLIAV/c5Q0C2PhP6l4IjSqWl+0DKH5fJT7A5SSDQ= X-Received: by 2002:ac8:7d82:0:b0:467:5e61:c116 with SMTP id d75a77b69052e-46e12a1e36cmr160729301cf.7.1737381207228; Mon, 20 Jan 2025 05:53:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IGCbxGDy6CHUSfOLqTxGL3gA1S6wKRHlUvydXAdXodFBspL8+Pdog+OKdfN6k1jzDkgqmOx+A== X-Received: by 2002:ac8:7d82:0:b0:467:5e61:c116 with SMTP id d75a77b69052e-46e12a1e36cmr160728291cf.7.1737381206799; Mon, 20 Jan 2025 05:53:26 -0800 (PST) Received: from vschneid-thinkpadt14sgen2i.remote.csb (213-44-141-166.abo.bbox.fr. [213.44.141.166]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-46e1030da00sm42651971cf.33.2025.01.20.05.53.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jan 2025 05:53:25 -0800 (PST) From: Valentin Schneider To: Sean Christopherson Cc: linux-kernel@vger.kernel.org, x86@kernel.org, virtualization@lists.linux.dev, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-riscv@lists.infradead.org, linux-perf-users@vger.kernel.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org, linux-arch@vger.kernel.org, rcu@vger.kernel.org, linux-hardening@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, bpf@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Peter Zijlstra , Nicolas Saenz Julienne , Juergen Gross , Ajay Kaher , Alexey Makhalov , Russell King , Catalin Marinas , Will Deacon , Huacai Chen , WANG Xuerui , Paul Walmsley , Palmer Dabbelt , Albert Ou , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Boris Ostrovsky , Josh Poimboeuf , Pawan Gupta , Paolo Bonzini , Andy Lutomirski , Arnd Bergmann , Frederic Weisbecker , "Paul E. McKenney" , Jason Baron , Steven Rostedt , Ard Biesheuvel , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Juri Lelli , Clark Williams , Yair Podemsky , Tomas Glozar , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Kees Cook , Andrew Morton , Christoph Hellwig , Shuah Khan , Sami Tolvanen , Miguel Ojeda , Alice Ryhl , "Mike Rapoport (Microsoft)" , Samuel Holland , Rong Xu , Geert Uytterhoeven , Yosry Ahmed , "Kirill A. Shutemov" , "Masami Hiramatsu (Google)" , Jinghao Jia , Luis Chamberlain , Randy Dunlap , Tiezhu Yang Subject: Re: [PATCH v4 25/30] context_tracking,x86: Defer kernel text patching IPIs In-Reply-To: References: <20250114175143.81438-1-vschneid@redhat.com> <20250114175143.81438-26-vschneid@redhat.com> Date: Mon, 20 Jan 2025 14:53:13 +0100 Message-ID: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 0_DxTH_RW4JRzvjVIV__lSH-nWH_ewGGgAti1cDfY9s_1737381207 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Rspamd-Queue-Id: 56E1740009 X-Stat-Signature: kucdhe1wo9isz3nq6s3p7rw9gyxmxjky X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1737381211-470907 X-HE-Meta: U2FsdGVkX19vrmGV5HU3Wv6QlVsFyG0BbQR3rRthix/dJ/Y1ow3Ct0uokCYkGuJySI5jTiAmSZGUl5kSEIOs9Exvu6WiHefy0Da5Wiaovvlot1dDGEbFi/2U/zWa3h/zekKYto6KwEKfnowLxxGfBjdVx3NELUEM7Dsghvzx8k/EEzTZPaKEWMFphf2dkB48+UARds8/j1CMHp6jKpVrb2/+pgfjJF5p8kjMz0d8YvEfhnjtqpJ6JZAL9Jh3uDnrCY/FTb6wWeu7NQlkvro0nqwRSrMXhOsyjk1BBSCC2BX21j6+9QUwTxcrcWQLZ37ImWcO2Bgh2bmjGJ+4+QKXLNIldz/E8OM9dHVYf+y+qyg16Q7wCuTQvebw/DH3D4dH++oq6M05hAhzjcW1wr/vujLIMeikudGQY1nVoN42ilWQFElX6dCvZ9/PWxb3U84w1cRdN7lIHYW2BFwq5KcNlBhM9g2deHVRYOg4vG0UiqgIG3qnXPDL3N/uapYCuf7mRDGLAaBRn76OauvmRPGR9I3nWMQFmNepY+1VhCsvuKJFlWwgXx5Al8fYjVatngiAHkAy8+IcDEqianIwnqfrhh0ByAF16lO7FROSCRlkHroiPvkoQMroRwSgCQPeD+RYDHjVZ7/1uma/Zhf4MzlqnCISKV08zbC95yEloq4Bb9pi2qFkCoGqCVxJJvvyyXolnX0UpdiYhkkcd2uyHUP5YYiOBh1J1GCR5vYqPkXmv9RnyP6HqfqRqabmc3p/nsqNVV2RFMWNE5ejfadq6uINxEjRDCyZSh+qTlrEelKZ3uwz/QLlyvLEdEJ10vgwCoVGO7yPftAexZtF7kphSYFAE0Yc9JrQa9jk0Bj81b73phbsQqJ5Z/U5Sg7wfsHHChauOc6HhcrUdYk0a6zt/4IMfqHWTExZ2kAgXo11y9oVAyEXCQKrzGbEWFJihn0iLHjNZGVCIra7KykSuI8sV6F aq4ojkiP 9OUz9vKklGfnhM6D5XclNOY0lgyKVlthqxM1iD1UtCxn81wUCeDi3AMszj5F+GUEZPALfF+BdOokh0ri2dEheUgmYnArEco+TnVybcdxUqDhn8g9aRWSeia88kn0Oc4fBhq+IUWUmLfO+5cY9Q+KRv1zr1jinUeCwVBe85di7qw0lC45DV6NOHk0czehUnAYo4qZ0dl/W/LOyMiQKXc9WPHEHiAyyMc7OzNM8KDVIenQBYCs+iVqOEbESLdXWaZoc1mPGIVgxuS5P8fE3jwrPrvlDHDk5YSYWK9z/bK4L5fcBa9autdd8y1nj1+BVIFR5U4zGh3AgnUdOSIit4gAngZ7gKFwlGPTshU0AZRC4EyUqUgvu3R3r2OrLmClTue/k5+Wt1dljmnYeaIa9Qd3Ie6LbWWIkNxZFC8SKcRL4rnsANsY= 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 17/01/25 09:15, Sean Christopherson wrote: > On Fri, Jan 17, 2025, Valentin Schneider wrote: >> On 14/01/25 13:13, Sean Christopherson wrote: >> > On Tue, Jan 14, 2025, Valentin Schneider wrote: >> >> +/** >> >> + * is_kernel_noinstr_text - checks if the pointer address is located in the >> >> + * .noinstr section >> >> + * >> >> + * @addr: address to check >> >> + * >> >> + * Returns: true if the address is located in .noinstr, false otherwise. >> >> + */ >> >> +static inline bool is_kernel_noinstr_text(unsigned long addr) >> >> +{ >> >> + return addr >= (unsigned long)__noinstr_text_start && >> >> + addr < (unsigned long)__noinstr_text_end; >> >> +} >> > >> > This doesn't do the right thing for modules, which matters because KVM can be >> > built as a module on x86, and because context tracking understands transitions >> > to GUEST mode, i.e. CPUs that are running in a KVM guest will be treated as not >> > being in the kernel, and thus will have IPIs deferred. If KVM uses a static key >> > or branch between guest_state_enter_irqoff() and guest_state_exit_irqoff(), the >> > patching code won't wait for CPUs to exit guest mode, i.e. KVM could theoretically >> > use the wrong static path. >>> >> AFAICT guest_state_{enter,exit}_irqoff() are only used in noinstr functions >> and thus such a static key usage should at the very least be caught and >> warned about by objtool - when this isn't built as a module. > > That doesn't magically do the right thing though. If KVM is built as a module, > is_kernel_noinstr_text() will get false negatives even for static keys/branches > that are annotaed as NOINSTR. Quite so. I've been looking at mod_mem_type & friends, I'm thinking adding a MOD_NOINSTR_TEXT type might be overkill considering modules really shouldn't be involved with early entry, KVM being the one exception. Your suggestion to have a KVM-module-specific noinstr section sounds good to me, I'll have a look at that.