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 EF6F9C7EE2F for ; Wed, 1 Mar 2023 15:43:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8A8806B007E; Wed, 1 Mar 2023 10:43:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 858F16B0080; Wed, 1 Mar 2023 10:43:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F9496B0081; Wed, 1 Mar 2023 10:43:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 601DD6B007E for ; Wed, 1 Mar 2023 10:43:22 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 236891A071A for ; Wed, 1 Mar 2023 15:43:22 +0000 (UTC) X-FDA: 80520748644.17.98F972B Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by imf20.hostedemail.com (Postfix) with ESMTP id F101B1C0016 for ; Wed, 1 Mar 2023 15:43:19 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=rivosinc-com.20210112.gappssmtp.com header.s=20210112 header.b=ug1XGeE7; spf=pass (imf20.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677685400; a=rsa-sha256; cv=none; b=RW2ax5yoXVVu8d7/mUdvJUXmr3aqfHib3692udX5IJ7yhOTfTbrACSlDOjEt62dVZSoPpe arcpuXoZv4oXjSH3VAqC1OsUPd0t1jYQX5OUyyEJ4iEFqB3Cc7Dax+8W95t769ylz6m8pm t4V7SlFWN28J49VrD4LuWQFfAYV8sXE= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=rivosinc-com.20210112.gappssmtp.com header.s=20210112 header.b=ug1XGeE7; spf=pass (imf20.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677685400; 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=jk1CWGRa3kTQ1gWjtQmCrZaMDysdPjD2ahhPP4P+cE4=; b=h+MZ+Ct6G09IqE0v0dnRUAddhsjMekQ7EesTMdhW1RNc53EdgHb1ALqGXgmw3GPzMCEiHQ lmbSjVG23rF7XG84nCxzFdariif0ev7x2icoaF9tosKWw2ahu7NG/DruaRrsQSnRSyyjLr RO4ltXTuxyq/X3OHIDuBm68hjWaBU40= Received: by mail-pl1-f170.google.com with SMTP id a2so3975117plm.4 for ; Wed, 01 Mar 2023 07:43:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; t=1677685399; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=jk1CWGRa3kTQ1gWjtQmCrZaMDysdPjD2ahhPP4P+cE4=; b=ug1XGeE7iC8LpsVCZd0DbykTPtEnDqjJ1yoKa99KHOYkuNK0+rPf+PfOpGKU1k373B MydjpHWbfYsd2X/mu+irks0cPlpteuOxWdnypj1j9dx8SCVDnoB6JvTyTYnOVacb9p1E PChqxk62yZK6sPgOS5IqMfafa2AJbkCped3eGbQh2rqoJP3zyUKaf4VSFG5YfOE/+ld/ +2FiubSXkAwReCibyX5oZ7Kr8TaK9l+8jwiBcaG01SgtzbQH++8gKEA3Z8/MXjsB5VrV 2rnuJd548h43t8eIMFAB2MsHtfgT4SRS4oFx2AIOMNLol6otvCCEm5y0U+dRDDtE7aR3 aCLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677685399; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jk1CWGRa3kTQ1gWjtQmCrZaMDysdPjD2ahhPP4P+cE4=; b=C11E/Y/2/Ott5TSMkq2KKwoFV9o2yVfMjn+TBGCEWvfJLdziPmEEthnLPzVuruGoYN wLk/FOCMs+ruKfwmHcN3YFFPa/qBzQ3PKPa76GsyHPdpPU7y2jY47zo/B4DDp/iAjwbI Rl6VqKCwT69HEFYjM+d+ZTEyTWOO6hJa0aVx3FkegLnfssnhyJN6ePLZW5e5ZlXxkcDK rvC7kHtyZuxvoTRcS3O9X+5B4e7y4nNQ4fLMy45qWoD9wreS9i2cDvz8BS0nxNqbNHku ooQez8qdJPc827gMRNr/uObXVqcT7OGA17ntLbqs6XYBUIsuaBFVud3GiOdqVl0+FZDn A6uA== X-Gm-Message-State: AO0yUKWCOEmrdlkfuHMGUw7hPTuulZYZRxOIEaj1pP+egcY7Nf0yj8xl M94hUaSgN/6JnXbRqCeRq0v/gA== X-Google-Smtp-Source: AK7set+fuMNisfM0WBwYC+EByMgjJsGThlfCcPJ0YdCBsPkhFhVceqUj2X3JoyoEZocv3WGD+ka0vA== X-Received: by 2002:a17:903:1111:b0:19d:778:ff5 with SMTP id n17-20020a170903111100b0019d07780ff5mr7622440plh.15.1677685398868; Wed, 01 Mar 2023 07:43:18 -0800 (PST) Received: from debug.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id q16-20020a170902dad000b0019a87ede846sm8577709plx.285.2023.03.01.07.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Mar 2023 07:43:18 -0800 (PST) Date: Wed, 1 Mar 2023 07:42:58 -0800 From: Deepak Gupta 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 , Borislav Petkov , 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 Subject: Re: [PATCH v6 20/41] x86/mm: Teach pte_mkwrite() about stack memory Message-ID: <20230301154258.GC3505369@debug.ba.rivosinc.com> References: <20230218211433.26859-1-rick.p.edgecombe@intel.com> <20230218211433.26859-21-rick.p.edgecombe@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20230218211433.26859-21-rick.p.edgecombe@intel.com> X-Rspam-User: X-Rspamd-Queue-Id: F101B1C0016 X-Rspamd-Server: rspam01 X-Stat-Signature: x1xbiwmc6f5r8a7ez3ysoo8nii6didz4 X-HE-Tag: 1677685399-662914 X-HE-Meta: U2FsdGVkX18ZqzeNCaOm64L0Md3E/xdAjn4KMt6mmpMBsp4W/bTfCOXgF2bdWAldJYNN9KaozWkIHEkEK+pfd7xR0wJtYIoJpHIzbw/6acYH4wXy6Kj9Mz3zhnZP16sCQZJ57vvicqetZILR6jxjKHB2G5nw8iwhAQe8D6J4tU6sBYILUjNLZoeruYY7YNgEBcK7XUE7QIgF5KbZCC1IVHLs4RTs6SVktMysI980YUUBNyJUfZNIjmUC9ejFWPXkdj0w+D0cAFom2VFfE9PVx3HLLl9CvPJNTAD2u5lSreVQpaw0LvZ96bzGF0ZFmMVNpCcgFKYhj3dmg8SeYECFlyInn5Ne7nd2IXEiP5F5DAVBJsE/xALzQV5ze6hQ4WBsz/0LepUkSgBS5BKshUCBHRpnkO11DF8eHS/5vyqj48rHIKr+FlyNovtcFwHxU6kQuXsE/sRsjCUVF+Fmi3dOxO9v4j0ogDVrP7ndh4PtF1KGKvbDMeCUWjTNarWGGltpY8frEoDLbyqI3xXi5bokn6+lQEEc9I2bUvics2haOHjtp245saIMQRWeF5KQTECYE1BzhH3rOW8kwWdaRsM8Km/4nGT/tCnpUEjjwhGcKRAUqao/mqVhDfHWlkiE/09SzWEfsGggr0GzDZYDRKhXBNoRl1XXPOM/qWJd3RWtzWIWMoNGVi/NBNb+7VpokvLi8EClvs3ityPcsUGQ1PZCyIrfgtor6XlpPy/XZhhPd3a4P8D4npVfeyNhIssVmhHytTmbS/mjYKUTCMbnqadoDWE21x/4uehkjIn7cNIoDD3O+Tj67YiVQCMhscn7UwF9GUSe5HEoYgpEQFqtKidp5Ky1+AEV5LTYTcNUL7aXZA++ijHySDuZiJm71AWLyOT39sZNo7YuXFn5tRG7GfgebvkB4yYJWdMa2bQgOUOEwCoVj0SW4SCaqNmo7P3P9QrwVg8Z5Od7I/b74ARws6C Cew4aqUq yYfNuAa44euo0otjeLKDdENENtZk0TzRAtKMYh7W8+vlitjMgg+DeIjQwExs3/QoEKIlBUBHyb0kZHWh46zGny96gq7N07FFC3C8Y+pq1Lu12bNlMnOtrveXk59BCHnwF/MX28eznz9qYzeduQuCkcA0WMI/o4cn0AZemWjPPFFnNE3k05qbr7/rK4BIuEhqm1bOHtvKldxSNXHryyxlo30woe+0NtMzfH1eM4OdjH87BKaZkKL9sDl+ZT+BlGNpkzZ2HnOWGcliOSC2KyUZ+T6Mc9+fc7vsdwHNiL0UMK9zZ0uqN64Ck67OBz15vfDSsh+KH0RZ7jlrLtSm1SvgLWb2WJEwoa2EaeAVAhzLNY6HmsvqtZYLDvUP2fRGLgYlrfjEkCVbfrJevlL/jpC+YHrYJh5u9jpfiOhTn7U2Si3oejkMZ7RrNywGuT8PSWQVvYvRvcQOiDD1M9PUjkQcPGcJTZ9XWUh3mm4DcMr1fsp+jcivUgMYV2VM1vmbakUzyaRyMS6dxkfFKYZkR3++tJxpV2t3dKsN9lxVSd5DTonZYoPQI5qqYGLkko9q6BR9njSL2u1MalyWeuUpT2rS/a1Xf4ZN53igZoScOOg8ubFwjRT8= 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 Sat, Feb 18, 2023 at 01:14:12PM -0800, Rick Edgecombe wrote: >If a VMA has the VM_SHADOW_STACK flag, it is shadow stack memory. So >when it is made writable with pte_mkwrite(), it should create shadow >stack memory, not conventionally writable memory. Now that pte_mkwrite() >takes a VMA, and places where shadow stack memory might be created pass >one, pte_mkwrite() can know when it should do this. > >So make pte_mkwrite() create shadow stack memory when the VMA has the >VM_SHADOW_STACK flag. Do the same thing for pmd_mkwrite(). > >This requires referencing VM_SHADOW_STACK in these functions, which are >currently defined in pgtable.h, however mm.h (where VM_SHADOW_STACK is >located) can't be pulled in without causing problems for files that >reference pgtable.h. So also move pte/pmd_mkwrite() into pgtable.c, where >they can safely reference VM_SHADOW_STACK. > >Tested-by: Pengfei Xu >Signed-off-by: Rick Edgecombe > Acked-by: Deepak Gupta