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 E364FC7EE30 for ; Thu, 2 Mar 2023 12:48:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B58A6B0074; Thu, 2 Mar 2023 07:48:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 365336B0075; Thu, 2 Mar 2023 07:48:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 253E16B0078; Thu, 2 Mar 2023 07:48:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 15B126B0074 for ; Thu, 2 Mar 2023 07:48:42 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D75FC160427 for ; Thu, 2 Mar 2023 12:48:41 +0000 (UTC) X-FDA: 80523937242.02.8302611 Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197]) by imf05.hostedemail.com (Postfix) with ESMTP id 08487100002 for ; Thu, 2 Mar 2023 12:48:32 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=R49PSVoU; dmarc=temperror reason="server fail" header.from=alien8.de (policy=temperror); spf=pass (imf05.hostedemail.com: domain of bp@alien8.de designates 5.9.137.197 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677761320; 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=4MfiBkMkz5ebUfMAXrylF6PkikHE4wLk3HTn0lHaOb8=; b=GTLtq7kWYkEwJFMw4va9BKZQqMINc8Ctrg26gqlFrXZhEyy2sPrLqoQg85v+JdKyzFyYKN Ayfw1IgLQdvbnEFnyDRSOQqkiMJpnh8pnqznNgmcwA+BxuK9lQy5CSLWrKEdQwfGOlfpmB lZJUVmfh/IiM0qc9g1DICrYB1StySI8= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=R49PSVoU; dmarc=temperror reason="server fail" header.from=alien8.de (policy=temperror); spf=pass (imf05.hostedemail.com: domain of bp@alien8.de designates 5.9.137.197 as permitted sender) smtp.mailfrom=bp@alien8.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677761320; a=rsa-sha256; cv=none; b=Z7LNc/VhD6jSvmBiAKhGn3xf1y0P7nvCjJue5RMvLXWb06xnlOHyeYzIlgICUpJMqJGJzR 6J8A3GKwrleSDQlh/uWL4OGzheLTNxyd5XCwExzWX8m+9Hc5EFOh44ocWYvjQCcgYFstBl I4qnT68wVYZCLeQm1brf+imy2kdyTQ0= 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 BBA871EC04F0; Thu, 2 Mar 2023 13:48:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1677761310; 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=4MfiBkMkz5ebUfMAXrylF6PkikHE4wLk3HTn0lHaOb8=; b=R49PSVoU67TzEd1On6SpyLZ5WN+gqAjISYxKzodjcp2/ghuXDA5b8QNG5KBnMO6cXj5YsF WpCPRF0NmdOGSrDnKXws+eFjaG91CTVWNqlrOkaSjyjNIHM7nBkjL7+VWFZt1SHGYHoUg0 xc2yxp3B4WH91qCi1Cnu2Lbg6fCdzg4= Date: Thu, 2 Mar 2023 13:48:21 +0100 From: Borislav Petkov To: Rick Edgecombe Cc: x86@kernel.org, "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, Arnd Bergmann , Andy Lutomirski , Balbir Singh , Cyrill Gorcunov , Dave Hansen , Eugene Syromiatnikov , Florian Weimer , "H . J . Lu" , Jann Horn , Jonathan Corbet , Kees Cook , Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , Randy Dunlap , Weijiang Yang , "Kirill A . Shutemov" , John Allen , kcc@google.com, eranian@google.com, rppt@kernel.org, jamorris@linux.microsoft.com, dethoma@microsoft.com, akpm@linux-foundation.org, Andrew.Cooper3@citrix.com, christina.schimpe@intel.com, david@redhat.com, debug@rivosinc.com, Yu-cheng Yu Subject: Re: [PATCH v7 14/41] x86/mm: Introduce _PAGE_SAVED_DIRTY Message-ID: References: <20230227222957.24501-1-rick.p.edgecombe@intel.com> <20230227222957.24501-15-rick.p.edgecombe@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20230227222957.24501-15-rick.p.edgecombe@intel.com> X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 08487100002 X-Stat-Signature: x3crx8mfhga6u3rdspoopx473c7zhzem X-HE-Tag: 1677761312-460877 X-HE-Meta: U2FsdGVkX18c9NMleLKxg4zYn9GozhTSdbCNLWBSOOWcQPj1hp5CUYLj2nyP5rCXdn29zqw7RcGaElK9C7wuN62uKn1cXVEv0aXSRyLPC5LWtwwU9PEw3v+8gFgc3n2HsboTT3KD4JCPKUqEpa175B3mbm0cas9k3XDah2A0FrW9TkBADU0sNPPFompHsZmS9J/wxO5hVeMv7+y53aL5pVylxgfgFhtfF1NV/tJ3qQqMrg4A5Y5C5TW4ue+lhgZMICl/5jW8S/Y+VtbhXiwsJyQAUK5Wz8OhlccvYpvmo6j8jpQYkpRw7zhzoTCiGrOI9qWxmAybQjBROmITCb/A6XX8pZ8S5aggMMCBup8pAQo8Bs7F4uyl9agJ6uBThSbUuFuvRG7IPXpBLs80yKuCXVQgRXmWPNAPaT8PFTOvqn5p4TrASZFJIn6HfPD9P7S0XfBQCWIjDp7SkXWoWkitDqlaOS34I336q6eTt9fn7/GhmQbny41dyuj/3NfwmQjRhRJ0aVe1BGhBRWxKBz99862k5QqcQDvaYX/+4A6dZwlGLn1SiU1/8u5ZMkfH+FU/erwPaodslimdmOoEVvAhEkneSMr/K+EHuQmKmGfIf62YITJ6KdUzNsbRuDbCu0L2b2BeniLWay2j3lzwbbCxj6CXYMavCNakiXM612UTdBR8s8vmmeFY4ik0rOG7VD6NiNWQMk6bdl/4TsfK/wIH2ysR28JOwWKBG0mJGF1lxYiWaFzulkMuYgyc4gLX2qHAlgq6KSn8OSP/xowCkMHqZqR4CK/X+d+U4rtmwjV0zjPPcGCbp1iIVURMJRrqPiiudOGR8OBAJf/+kjvRb7IQg10tJsxhtPQ2yxqmmDhrlETVdpjhGv7t/aQqVwckSipvZYGL2S0Tr1fIS87CCOmbl1D4xJBSl4UQKiKamrWqF68x6fHtYymQa2iDkr69UfbCPp8pk63qjhAW5bk+QY9 CB8E778p FH7tPLWVldOpedk+QXZqJP+JsmqMbJYG/IhvuAwlp3w6/P4HnqkTibnaJv1mEufjBlmpCrdKtFSRTUsV74x2xBmowM35dxT3BARk+r7dnqV7XGck2ah+U1M8X+CGZM7Dijja7HHSvz15Dwbm11RL89at35Npngsl0P6jNxgYY0tQIXh7gpTRxksFAu8GEZ23K0kU9aPWHKS89dD6anxkCOMESvtfgU51yNNrq3thQP3qaJ0CwBWQsOsOErsfaHJijag4X6vOV+REmYOH3IYOHmnTWgqPWOvCyKn7//BRIz85K4JUqm9TbyvMjn20Nz6c/uY79T5SidTCLPZs= 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 Mon, Feb 27, 2023 at 02:29:30PM -0800, Rick Edgecombe wrote: > diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h > index 0646ad00178b..56b374d1bffb 100644 > --- a/arch/x86/include/asm/pgtable_types.h > +++ b/arch/x86/include/asm/pgtable_types.h > @@ -21,7 +21,8 @@ > #define _PAGE_BIT_SOFTW2 10 /* " */ > #define _PAGE_BIT_SOFTW3 11 /* " */ > #define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */ > -#define _PAGE_BIT_SOFTW4 58 /* available for programmer */ > +#define _PAGE_BIT_SOFTW4 57 /* available for programmer */ > +#define _PAGE_BIT_SOFTW5 58 /* available for programmer */ > #define _PAGE_BIT_PKEY_BIT0 59 /* Protection Keys, bit 1/4 */ > #define _PAGE_BIT_PKEY_BIT1 60 /* Protection Keys, bit 2/4 */ > #define _PAGE_BIT_PKEY_BIT2 61 /* Protection Keys, bit 3/4 */ > @@ -34,6 +35,15 @@ > #define _PAGE_BIT_SOFT_DIRTY _PAGE_BIT_SOFTW3 /* software dirty tracking */ > #define _PAGE_BIT_DEVMAP _PAGE_BIT_SOFTW4 > > +/* > + * Indicates a Saved Dirty bit page. > + */ > +#ifdef CONFIG_X86_USER_SHADOW_STACK > +#define _PAGE_BIT_SAVED_DIRTY _PAGE_BIT_SOFTW5 /* Saved Dirty bit */ > +#else > +#define _PAGE_BIT_SAVED_DIRTY 0 > +#endif > + > /* If _PAGE_BIT_PRESENT is clear, we use these: */ > /* - if the user mapped it with PROT_NONE; pte_present gives true */ > #define _PAGE_BIT_PROTNONE _PAGE_BIT_GLOBAL > @@ -117,6 +127,25 @@ > #define _PAGE_SOFTW4 (_AT(pteval_t, 0)) > #endif > > +/* > + * The hardware requires shadow stack to be Write=0,Dirty=1. However, > + * there are valid cases where the kernel might create read-only PTEs that > + * are dirty (e.g., fork(), mprotect(), uffd-wp(), soft-dirty tracking). In > + * this case, the _PAGE_SAVED_DIRTY bit is used instead of the HW-dirty bit, > + * to avoid creating a wrong "shadow stack" PTEs. Such PTEs have > + * (Write=0,SavedDirty=1,Dirty=0) set. > + * > + * Note that on processors without shadow stack support, the .git/rebase-apply/patch:154: trailing whitespace. * Note that on processors without shadow stack support, the warning: 1 line adds whitespace errors. Hm, apparently git checks for that too - not only trailing empty lines. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette