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 58C4DC02183 for ; Fri, 17 Jan 2025 13:45:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DBC43280003; Fri, 17 Jan 2025 08:45:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D6B3C280001; Fri, 17 Jan 2025 08:45:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9672280003; Fri, 17 Jan 2025 08:45:02 -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 9651B280001 for ; Fri, 17 Jan 2025 08:45:02 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 230541C7CCA for ; Fri, 17 Jan 2025 13:45:02 +0000 (UTC) X-FDA: 83017064844.24.46C3415 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf11.hostedemail.com (Postfix) with ESMTP id B3BBC40013 for ; Fri, 17 Jan 2025 13:44:59 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dHjdNyLa; spf=pass (imf11.hostedemail.com: domain of vschneid@redhat.com designates 170.10.129.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=1737121499; 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=HEKKhsO2kOL/qF9SHnIE9a8dcD47/tUh4wLid3vzvOo=; b=UM6iA5uGd+YWTaYi+hx7hDVGTEytMJ1LFnC1NSTvsufM0O/h6N+gwcgSeEjrhCRasdOyFs PQUAQMnKhzsI7qKClUdWN03+derbnOGrosaRVyQ4oWQNX7tOJWrVyIEWUbe/pcauF+JCpG n7DZZUZY2kVfhZ8GnrhnPZC7Y+ad7Is= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737121499; a=rsa-sha256; cv=none; b=TtkThBt4+BgHfMy8V/1WZa2s+oy3kauoJqulezRl91BCJrGP/wbJCSGZUoIEKgh4NJXvRa BapqNbyjx2by+NDN66ruIqQJNsnJZsDFZtvcGXl3pS6fD/Q+vc9vphe+lF8z2LtgqknuSz syY1N+NGY6tlUoNKI2OlgOi3l1sLS2M= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dHjdNyLa; spf=pass (imf11.hostedemail.com: domain of vschneid@redhat.com designates 170.10.129.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=1737121499; 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=HEKKhsO2kOL/qF9SHnIE9a8dcD47/tUh4wLid3vzvOo=; b=dHjdNyLax0qZVxM9TIJC6GF6oJJeIcbVv3BEyemoowgxe3PJIrBsA7l8Ktyvd5P5emCgVd PEHTgRd538zCRI+sHUdDKDRqRcoBmxgg9z/A3YMmE2j0ehxAnOuOGW6bEz99LM1Akwt8ut zuGD+qxG2M8Y9BO54zSvwAuyaSxxx+Y= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-5-vTu_M1T3Mxy3xANtlDJwGQ-1; Fri, 17 Jan 2025 08:44:58 -0500 X-MC-Unique: vTu_M1T3Mxy3xANtlDJwGQ-1 X-Mimecast-MFC-AGG-ID: vTu_M1T3Mxy3xANtlDJwGQ Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4675c482d6cso43607561cf.2 for ; Fri, 17 Jan 2025 05:44:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737121496; x=1737726296; 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=HEKKhsO2kOL/qF9SHnIE9a8dcD47/tUh4wLid3vzvOo=; b=Q1wZjNO113+vC9RenEH/hUNxJ3i7sTubqihD2LLjpQP0OB6MISI1Ptw50w3tbPeoAR xaqLwINwyAiQm+MuRP+QLHQWFQLqenO4f6FQjrdaokYPGRMRtkAJDgCP4ma29kLLs6Xw xYx+1ajzRWNIynENLrfLZcu2zncsZR0cOrqoDprT+XDeunj4uDFi8hA8w4FD4aWgeKGy TzpVfZWcbrfNrrvIb3/QzaQXIQbhwY0ZpT/l+2dk9IOtfXK7Qk/h6qpX4jpnCstfXAtH HD0qtwtA12MHvx4FAVHuOYq7Q55rUNwubJiq2yNpg1qVY8qCuwSxSbj91PmNovp4dcyw lheg== X-Forwarded-Encrypted: i=1; AJvYcCW5Te1wp8rlq4zQk0gtbyXfrsJUSfOeaShQHYyiNlS9b3ynaPccmoouPDPKtP8Hvg0lpQGHs0CnGw==@kvack.org X-Gm-Message-State: AOJu0YwZ1ZHQsHWQMrFUqPzbFWNGiWR2xIfKT9LRypMiT7ombbzvNkTp 8GsNrOyudQxqy6k9OHkraBYa61eIn+tG31kkcQMpQdpS2DDLpsMAaoSDGEQ7q4TbrDHAVXBYW4m yIL4J7H1UNa6cZl3dbA6BnkhSk0dgbM8YcgQbs1IcwmOuHwIB X-Gm-Gg: ASbGncvqFRWHkqX/GsgTEXiWsq0o54IHYghA/+l1PQE2TBXGeAeigZnuvsA+On0HX1H B/Qvhh+BrSv71ckDpis0aF2F/q6PVmGGNH6talFeBP453FouOI+p9adcBpFvlZj+O5sXt5JaO2K ZZo6NLGjjHB2J1kl6EQ8uQJDcqUB+bqL/6RGz+iEyQb5euT4QmVNkn8xVQISbJhNUsyM8RRaGxS SXBOron9mr88VXMyyAEt6s8+WoKcp/o9fnUAbyQ2XLYiEZPWh1q1qQ0MxH5+Tgmj+p1jnzMyEFD LATFRDvOL8Wsnx33OC4d1FD9nkku/ZVvIKiZO7q9XA== X-Received: by 2002:a05:622a:1387:b0:467:674d:237f with SMTP id d75a77b69052e-46e12ad5f7bmr40519301cf.11.1737121496637; Fri, 17 Jan 2025 05:44:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IHmIl4MCDkHkFsxi8fUyXS99BtrKRZsY+6w06Ii3eQgKuqou3xcsKirOxy10aWGIFujuL9O5w== X-Received: by 2002:a05:622a:1387:b0:467:674d:237f with SMTP id d75a77b69052e-46e12ad5f7bmr40518371cf.11.1737121496270; Fri, 17 Jan 2025 05:44:56 -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-46e1042ef63sm11228641cf.71.2025.01.17.05.44.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jan 2025 05:44:55 -0800 (PST) From: Valentin Schneider To: Dave Hansen , 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 Cc: Peter Zijlstra , 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 , "Liang, Kan" , Boris Ostrovsky , Josh Poimboeuf , Pawan Gupta , Sean Christopherson , 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 , Nicolas Saenz Julienne , Geert Uytterhoeven , Yosry Ahmed , "Kirill A. Shutemov" , "Masami Hiramatsu (Google)" , Jinghao Jia , Luis Chamberlain , Randy Dunlap , Tiezhu Yang Subject: Re: [PATCH v4 26/30] x86,tlb: Make __flush_tlb_global() noinstr-compliant In-Reply-To: <52311c3d-83cf-4dc4-bbcb-5fbca8eb249c@intel.com> References: <20250114175143.81438-1-vschneid@redhat.com> <20250114175143.81438-27-vschneid@redhat.com> <52311c3d-83cf-4dc4-bbcb-5fbca8eb249c@intel.com> Date: Fri, 17 Jan 2025 14:44:42 +0100 Message-ID: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: tRoPe-f3zYvQ6Rsp5mJLx5gpsxqtNAQfWOcFpYwzUzc_1737121497 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Stat-Signature: j45w53jnessb4w5qbd47bydndtqjy3qe X-Rspam-User: X-Rspamd-Queue-Id: B3BBC40013 X-Rspamd-Server: rspam03 X-HE-Tag: 1737121499-265617 X-HE-Meta: U2FsdGVkX1/wkMLYjdCz/GKFCMgrJZQAmAccKgOGpx3aOB3ixefe9/jptSVNWXTeSAwiO0FFqIZWou594v3Vh6MiDStCqTrZh2aO5U22oE7YtudprsEqjUG7mKJhin58aoG8uD6b5V36CiNbx7qf16k+C/1l854YQrD63xSgubH/HuVIt9QVlt/iJtTpTJkGuJwj1HpWLi+aeBqFEQerJjqhPW0aJY55N2mocyFmQ84/bS0A/XI2rGcaYYk9mT2rHXUBiM+dq4wtolMGHwZXUqXYjxy9zgxVAmcIMa7h0b6yfq2tBaoLrw0eUDkRDxwUEPl8BWqUfOjN/dxXDq4xebpElse00OEe5mYA/eo+x+KafTB6vScso9xwf6reFWful/8D8VBQd56cFT1RNvZnnAAkRLHqHcvqaFyaZf4tM+e71UqvdmLcoIwlW/2WnW2iOnJfAWgsJJ9Zq8MOaE3SivbW3AuVOcJ+PqxsFTX84AqIlZfxAa9BatYuNtxzH3gmZwcJKnGBKm8itokscXfFjYtrpdQ6NYw24KDjhcXWeiHHVghb4JefYPgwUlzcNMStQN71b+4kpugRxZ1D0SkYcGII3qs9q4qJmdekKlLuW4fefhZ2t2o4SA1eq4MsTipuGIvrOLgFNh54bgdYW+IGAGyHFpofr+hqQPZsstJDZWrb7c9goIJO+bwkB1YKmbamQhJcewqfguEJPNk4KzMLgymD/FdCKIwuS0byNY4PQ6Tt+rTg8GXyeW4hbf0Cxz9bM2wtbf/VVqwy5StL5Fb/oOUoArhh+i3w3qJK2WdgMB4XyRBxNVvonHcJn/deq6+iDDG7IDZoaMU5KxPy5p5pIFiJ8WLm1wk2I0MElJ3yxsfj24UI7MdsGZoniZEepmR4Zk/AtAr8ZqNu9DBOpNioYSXi8h055WPKBpFn+4sz0I0NShdR5AHFyuXPnKfUlt4HwIq05yyDGnEQlOncjSV DrGvyNlY 0pV0guA7vB3BU0Qo85T0sB8rQkHkpDxPS9J1HMhdfYvavvNSMfKvkcC9FrtfEX63xKJumb0i3vPLgeImazD1vichJYiaXsC/Fr3cDIerPsBeg/o4gZJbuWkAmoxl6vKggTYRSDoXngfXiZAIxdb9vG/K6ooKl8GFvCFDyxXJAbkEsUuAwBUZK3MnFJ72rovdR6ux0Kk1PVkog/SFoUfC2jBMKp/4kWs815aDy51Cqqxs+WvIIELRGU1UK9mbuhCFMRK+qckPjImsUyD9VuUtQcEM0ROjORlIHNf4rKX5JaoPr2i9TxD0sUaD6r7FYcdNG9CdvZcRB0Tn2uv0LiJQS6mL8H887vGKPBBFncXGNSeshznmrbGE4gglL17BPFuTtQGriglPxjXy3HEzH6Wc0eyJhWCLv+3s+qtjy+1P3Z0+RiR8= 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 14/01/25 13:45, Dave Hansen wrote: > On 1/14/25 09:51, Valentin Schneider wrote: >> + cr4 = this_cpu_read(cpu_tlbstate.cr4); >> + asm volatile("mov %0,%%cr4": : "r" (cr4 ^ X86_CR4_PGE) : "memory"); >> + asm volatile("mov %0,%%cr4": : "r" (cr4) : "memory"); >> + /* >> + * In lieu of not having the pinning crap, hard fail if CR4 doesn't >> + * match the expected value. This ensures that anybody doing dodgy gets >> + * the fallthrough check. >> + */ >> + BUG_ON(cr4 != this_cpu_read(cpu_tlbstate.cr4)); > > Let's say someone managed to write to cpu_tlbstate.cr4 where they > cleared one of the pinned bits. > > Before this patch, CR4 pinning would WARN_ONCE() about it pretty quickly > and also reset the cleared bits. > > After this patch, the first native_flush_tlb_global() can clear pinned > bits, at least until native_write_cr4() gets called the next time. That > seems like it'll undermine CR4 pinning at least somewhat. > The BUG_ON() should still catch any pinned bit mishandling, however... > What keeps native_write_cr4() from being noinstr-compliant now? Is it > just the WARN_ONCE()? > I don't think that's even an issue since __WARN_printf() wraps the print in instrumentation_{begin,end}(). In v3 I made native_write_cr4() noinstr and added a non-noinstr wrapper to be used in existing callsites. AFAICT if acceptable we could make the whole thing noinstr and stick with that; Peter, is there something I missed that made you write the handmade noinstr CR4 RMW?