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 5E1FFC636D6 for ; Fri, 17 Feb 2023 16:11:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F207D6B007E; Fri, 17 Feb 2023 11:11:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ED0F96B0080; Fri, 17 Feb 2023 11:11:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D99A56B0081; Fri, 17 Feb 2023 11:11:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id CE1F16B007E for ; Fri, 17 Feb 2023 11:11:52 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 997FF12050A for ; Fri, 17 Feb 2023 16:11:52 +0000 (UTC) X-FDA: 80477274864.09.E03CD7C Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197]) by imf03.hostedemail.com (Postfix) with ESMTP id E7DA620004 for ; Fri, 17 Feb 2023 16:11:42 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=temperror ("DNS error when getting key") header.d=alien8.de header.s=dkim header.b=pC0kWiA8; spf=temperror (imf03.hostedemail.com: error in processing during lookup of bp@alien8.de: DNS error) smtp.mailfrom=bp@alien8.de; dmarc=temperror reason="query timed out" header.from=alien8.de (policy=temperror) Received: from zn.tnic (p5de8e9fe.dip0.t-ipconnect.de [93.232.233.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 98D951EC0947; Fri, 17 Feb 2023 17:11:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1676650299; 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: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=4y1K+ippPallw44msMIiTOwFvw7Y/qQvd/jrIKuWufQ=; b=pC0kWiA8XgbbDqXoBi0ZQAhCQQnBzSEOtx+o6/Z3o1Bmsd/vToZtakDOiDpFp68pxrqaoi I5pLmz/+ZlM8JR8KIK4/kruEfhCaPEV/O8VJmUVFzMef3BCF7EMkt0WDHDIjC7+2vCaCL/ wXw8LH85DU+DgfJWSHEHhvlJl91iUXs= Date: Fri, 17 Feb 2023 17:11:35 +0100 From: Borislav Petkov To: "Edgecombe, Rick P" Cc: "bsingharora@gmail.com" , "hpa@zytor.com" , "Syromiatnikov, Eugene" , "peterz@infradead.org" , "rdunlap@infradead.org" , "keescook@chromium.org" , "Yu, Yu-cheng" , "Eranian, Stephane" , "kirill.shutemov@linux.intel.com" , "dave.hansen@linux.intel.com" , "linux-mm@kvack.org" , "fweimer@redhat.com" , "nadav.amit@gmail.com" , "jannh@google.com" , "dethoma@microsoft.com" , "kcc@google.com" , "linux-arch@vger.kernel.org" , "pavel@ucw.cz" , "oleg@redhat.com" , "hjl.tools@gmail.com" , "Yang, Weijiang" , "Lutomirski, Andy" , "jamorris@linux.microsoft.com" , "arnd@arndb.de" , "tglx@linutronix.de" , "Schimpe, Christina" , "mike.kravetz@oracle.com" , "x86@kernel.org" , "akpm@linux-foundation.org" , "andrew.cooper3@citrix.com" , "john.allen@amd.com" , "linux-doc@vger.kernel.org" , "rppt@kernel.org" , "mingo@redhat.com" , "corbet@lwn.net" , "linux-kernel@vger.kernel.org" , "linux-api@vger.kernel.org" , "gorcunov@gmail.com" Subject: Re: [PATCH v5 11/39] x86/mm: Update pte_modify for _PAGE_COW Message-ID: References: <20230119212317.8324-1-rick.p.edgecombe@intel.com> <20230119212317.8324-12-rick.p.edgecombe@intel.com> <49d20fcd197e85e8475f5170db78780f06396cc0.camel@intel.com> <15c76808ac5975df2294d0c7edf0abfe8587da2d.camel@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <15c76808ac5975df2294d0c7edf0abfe8587da2d.camel@intel.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: E7DA620004 X-Rspam-User: X-Stat-Signature: bzfkhwg5hapkfunz1p1tk3a7xesmbfye X-HE-Tag: 1676650302-858342 X-HE-Meta: U2FsdGVkX18sayXmtvqdG1tFlZGVB8iQ1kI4kFnAVwFeEdeCwK3Nk7OTrVTlae9HV75mwjVm9GcrE2xATYI8hV1tiwaobqn3jMhzHBsZrK4YPzCS+QqLQhd0Axg+oVnMRHCYusWz2igGvQfZ7M+g0S0kbpuEYmKHEe2FzhZAt3s+ZqjVXXK0PJNvjkZ/7idwH5qp7n7hPiLUXDLz7927NUPjQE5LsL9OWSeea5ytaG6bwjlbNpAJsrViTUEn7n7xXOr0Q+YTr1sgXkxf3ypplgddvOBPdC6pHd2+Oo+3EvLGxmi/l+6CrcfUg50UXHbQTEuGohyMjo4DCb72i3knHUNYJdBXQ//08EY3xTr49hc72IhsdKPJoXHCOtS97C0SfmfcKQESyI2mZ3eaDGbpR4h2+3enCW5ZiSz7xMH6uzNtigrhl+rsl//giLh8oDfA6pQHsb7UUamftdPNxcSYYfKDFK1R7I5upftSbO52hQYuUhwn9GTN+Dnd9JCJuMo1n7KbavWfaHRNYYpyqqPMeoyRjjKUjy/eN7wpJmCb4W+CTU6HWNYew4uaa5lILLAAJk+X+1hFj8XMQ9pejwy9AKDJ0cSnrksgeDycPLCz5deWXN1sMvZYkd/F7bB4YmaAkGg9fViHM+QPaL6d/p0iaa8XtcC6c7+vAdRzH5mBLRBwXA7ovgAON7puMe2/fzXiIyfSgb8R4q8ZZg2/QXDzb+wq5YJCyS668YfruOR/f8Y9wQ+n/wy+2KjL6qIhc8FLftqwMnwErjhbB1CX4kk8GsQZgJ6DlI//OH6OiMa3beKcLeAZLv0FTh2v79aHf+gTQlzCFWBfZGdmssK7r2k6iiy2CS04GvSioweDCCrcYIKs1d9WlnijbwRKAbn5R2yacQhgTrjKBip9BUGerEyN46fs9sNNxJm8Nnx+4PGgYF0opIobm2mG5ralHm6FR93p9qNu8NYTFb6mLvIOtcS 4HQeB//6 8eGE/MVAEScrEugcEEiZ0lVUxdGsqEZjZZO2HeLfr/7mAyybs16gFOhNvS3MsPBdRIlmUU4FcC9mQ1xmRu36KxkcPemfUauoO2XH62O0+diygF+BLJfIemjU3KdzHTebKF2fAN43V7podT/RYzUtROW7xGrhxano2l8FyZfOcqn0CshTgNe3orIokzvvGZYSs/UrE0hPVg74k7MmUDlXMZZV6loORT/BiQInGKyMGucAsPLXKVNxE548WhbqY1Aod3BaqXEBT0NbUstmam+ZtKOqZkgWah9mieUwxwZ7NbwPMZ6q79jU6qbPkbL8acLO29VQnk5KMSEVyxxYVOoMalJN9//XCXiRhBoaBeDWR0Zcc4CWO6lBEwm6qY6WTcVdFsbdXtcTC1fJpDm1KAuI7VFkhlwyF3h7TfphL 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: On Fri, Feb 10, 2023 at 05:00:05PM +0000, Edgecombe, Rick P wrote: > /* > * Dirty bit is not preserved above so it can be done > * in a special way for the shadow stack case, where it > * may need to set _PAGE_SAVED_DIRTY. __pte_mkdirty() will do > * this in the case of shadow stack. > */ > if (oldval & _PAGE_DIRTY) > if (cpu_feature_enabled(X86_FEATURE_USER_SHSTK) && > !pte_write(pte_result)) > pte_set_flags(pte_result, _PAGE_SAVED_DIRTY); > else > pte_set_flags(pte_result, _PAGE_DIRTY); > } > > return pte_result; > } > > So the later logic of doing the _PAGE_SAVED_DIRTY (_PAGE_COW) part is > not centralized. It's ok? I think so. 1. If you have a single pte_mkdirty() and not also a __ helper, then there's less confusion for callers as to which interface they should be using 2. The not centralized part is a single conditional so it's not like you're saving on gazillion code lines So I'd prefer that. If we end up needing this in more places then we can carve it out into a proper helper which is not in a header file such that anyone can use it but move the whole functionality into cet.c or so where we can control its visibility to the rest of the kernel. I'd say. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette