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 C1B69C7618A for ; Fri, 17 Mar 2023 17:12:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DD9626B0075; Fri, 17 Mar 2023 13:12:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D89166B0078; Fri, 17 Mar 2023 13:12:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2BE56B007B; Fri, 17 Mar 2023 13:12:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B08546B0075 for ; Fri, 17 Mar 2023 13:12:33 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 538AAA194C for ; Fri, 17 Mar 2023 17:12:33 +0000 (UTC) X-FDA: 80579034186.05.7275A83 Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com [209.85.219.174]) by imf10.hostedemail.com (Postfix) with ESMTP id 6744FC0021 for ; Fri, 17 Mar 2023 17:12:31 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=rivosinc-com.20210112.gappssmtp.com header.s=20210112 header.b=Zfo2sCJi; spf=pass (imf10.hostedemail.com: domain of debug@rivosinc.com designates 209.85.219.174 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=1679073151; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3ikWb9GqbCHXDoNjDF2yyQsEog3dPXb54BKqYKGLZKo=; b=ICQbX7Wm1RtaL8QU9AWUI/iP90hP8gYCr0fJhG9XAitmm2g16BQR1c/LuXiPsZlnq2SowX vqvW8ih5cqQb/r8Bt+4dFmgeLmeDyMDu3kgz4bg696dP8ZCTUtf3sJw9p3HsmycInll00Q Ft8spT9NN02+nno8xXjJHSFjQQfJj7A= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=rivosinc-com.20210112.gappssmtp.com header.s=20210112 header.b=Zfo2sCJi; spf=pass (imf10.hostedemail.com: domain of debug@rivosinc.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679073151; a=rsa-sha256; cv=none; b=8ivmab4niH8EFFv/ikuyZYCxu1vfBSCMLNDA5rsC4/CQdJ1UMUKa3d0UyFoK4qB3Cr7stO etQCfCCCXAFM7QbXg0i1AhmcVEQJ5c9pj9IYnoat/WOCyUTi7GdXfeDPWRaX4ViPh3UIze i3W58Z4h4dHXZNxiHiKWhKqckUEJXNU= Received: by mail-yb1-f174.google.com with SMTP id e71so6504970ybc.0 for ; Fri, 17 Mar 2023 10:12:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; t=1679073150; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=3ikWb9GqbCHXDoNjDF2yyQsEog3dPXb54BKqYKGLZKo=; b=Zfo2sCJiLQjkcgp4hl850DgKMGKFeMrifVhcXlQv2qElaBsO7vaXPlKO/mdARlti23 8VPUEVXZngQedMVddPcy+xa7qlbkZuDci2xhcaUrExNMXCB0BLRPSznglejsnJNXw5ga RHzCNLPAoyv8psmkyR/QZtWDNz6zDpFfajtu9fd+byeuGP3OVNiTX1NwMkTXrRsmSiaM kwPuCZirTBcWpekpwTV60PfiSEURz6/awp/zWgGgnqKwCMh3QLkJmqKnQYqmXwIwAIlV kTtlgROVwfJgJkjXYAVD+QfBwuzQqod4NYECB2ZccqVLkcppcUvaY7Cc2QbGnU59+iYz YDbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679073150; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3ikWb9GqbCHXDoNjDF2yyQsEog3dPXb54BKqYKGLZKo=; b=e2WcKwCv+gvgyH3yrhMR42G4XaS9q6j/hkNz2oGGVBX7ubsrKU0nE0kZmYqHMBJVZ0 Yw9zeu+xC4sPCcT0QqL2fTQwJ+DtZWtwU9VSev6VdqYFN/6BDXUXXE+2gVfywseaBGm9 bXlsxCTGfIlfT2grQBWADN0DPUkQ+fDaqwPVatTU7Xj/oWHBvv1R42g4X02iOAPvFZ4b 3xEBeFlGVAjmyT/ddP9qcrEOfjjgGvmuUCPb/jUI14mU2WNehfKUa+YrS9EL9hRN7FTJ 02t5M81RN0fVXpEncFMluHlT9wZkU83gVrKdjFnp4wcp9+9zJoDrb2uWsklc9fxnbu8N Zkbg== X-Gm-Message-State: AO0yUKWSEMM3EI8rutQXVPcx57oHgoeIZpxmMSwQKXXjhXzbfD3iQUFz BOW8qFt6VB/t0jzIAISboCP8f7pxQa3inmvm5ruR7g== X-Google-Smtp-Source: AK7set/QfKKXHCQJ3mrdY3gq80ku8GQMwyT8c5IhgvAeBv6xKwxPXs/SU34oJvp29NZ60hId0CNTrh08jaWhgmevYpM= X-Received: by 2002:a5b:bc3:0:b0:ac2:a7a7:23c3 with SMTP id c3-20020a5b0bc3000000b00ac2a7a723c3mr154479ybr.12.1679073150497; Fri, 17 Mar 2023 10:12:30 -0700 (PDT) MIME-Version: 1.0 References: <20230227222957.24501-1-rick.p.edgecombe@intel.com> <20230227222957.24501-23-rick.p.edgecombe@intel.com> In-Reply-To: <20230227222957.24501-23-rick.p.edgecombe@intel.com> From: Deepak Gupta Date: Fri, 17 Mar 2023 10:12:21 -0700 Message-ID: Subject: Re: [PATCH v7 22/41] mm/mmap: Add shadow stack pages to memory accounting 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, Yu-cheng Yu Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: m93pjczpoe9o7z66aiez76bx8x1mwh7d X-Rspam-User: X-Rspamd-Queue-Id: 6744FC0021 X-Rspamd-Server: rspam06 X-HE-Tag: 1679073151-891565 X-HE-Meta: U2FsdGVkX1+ZqD/EJTuBc9qd3ivopYk5IF1IzQ3qJol9G/oMtCW6hU3Fyk4lAR1+bZ2ojsK1AjQfGQhKy8MxfBh8U/pyFOtafiP1TXaQX8dXhaHj1MgKbOURPWLiu6YCF9jjEwd3WchmXfxQtNv07QQMVdRBLPpSopq5w4g3/oayGMz4QZ7qq9yYPXGRe7gnIil6HXj5VFT6NMWQoMRSCtlNEKJy1WRWVuvddX05MpG+9LU2Gkmvfij50G4G5tudSLTPu18P436lOwFKXP1JBA5QaMUBIraI7u5vxiosRPnAU6AQ0YWf8tFtccOcCxhiUzehpdmk5F+l1L0vNlAC/ivBugCcb5gMYcMr8sYy+pwHLrEmFefq8ij03OraJEV7qfRhOi3vyukUK1oRHrVPKlLwiCeuN44syOpRHlksXqNSNg/Y2nnfXRsBW5saVsGqynB1hG7XrDNkKcyFmwYdhOWAFJHGjb/S3sv/o7eYoOZauby/kn730von5qs7b4dKYzsV+WCaqHyPkGEzMzjjcFd0wD8oiR4l7+R8RFojoKaGXXiCZYiXhBOQ6C2MpF+blpX8Tac2Hhe2OD3ixO9Qid0SLHSoO23r/CbMeO7JfnrVsl+omtOucvdL84tKQPw3thW+i4bAxfCqDMXMJpSnpDZy92Vc7985GWBzR5ISN4PuRg8Y7zvzKPtlPXuZT8IyBO6dA8eZreA0RVjKbwwA7gWDqWtP3QSfuTV9wBqX8GicE1KwmVUFERtWmliPO1nttl1hz1psFJeKpCKZujAEDrogDqmC843FRwkGyneGC6mx60BRQqEc0Lg3Ub72cPYkUKZbx4NFalnf6aFekWrLNWorGbGzjMSs+sEM26g5X1kmbSWC1bAEbhGNpbGNBd/hr3VqzD14XWADt4mQfyeT+ff9zFelbFRCWGDcZ+wbWf+2sBys3FTG9bLaoyFbiwqc2TXdEczijK8TdgC0L6X +DduAFta TgjRpO8Gv65nrZVcgDUV2iG+nQmsUQuaMM0LHsn/bZTezM9/9S86BZOsXF2I5/QxqLvtU3GC7PN6R8nvZ4khRD5ju2CWuareame4vAt1qW0Gd5EnpGsQYUlE4GG5mfYmVY/LQPUSqP4Yj92qbEHcZIznw0dH/Kbt7W48asYEThjXG4nZiK1cHDHMFlyBM1PFSzTtSCGP30YFpZVv0LWCvtPQeY6cZi6Zm5muRtOZOA+sCeP6tuuVvUo3Scgky9TFF2k71j3Lutq3WITAV7ivOSIi7gNO+SwDJK/HQnrkrJsvXR3U2qMdidiPHr4kaq9mATeRJFq9LTdynfc5adZQW1LUCH8TJIVNGRFq+m4DSc8nItepMLy9URlKQrKfa8P36zhLn1Z6jZgmsBdvZ6tej4VI/ihFY1PFF2oyNPPfxULgf1Y6+UBz5XyuPbi9BK/2dA6ri7rIFX2kj+AyhLHhAHLxmSKDuZyUbXRBhfR82Ed7BXBCTy+FytaBGlBNPi/XmbnD9IJmXB6nhng2mWSy19WRoew== 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 2:31=E2=80=AFPM Rick Edgecombe wrote: > > From: Yu-cheng Yu > > The x86 Control-flow Enforcement Technology (CET) feature includes a new > type of memory called shadow stack. This shadow stack memory has some > unusual properties, which requires some core mm changes to function > properly. > > Account shadow stack pages to stack memory. Do this by adding a > VM_SHADOW_STACK check in is_stack_mapping(). > > Tested-by: Pengfei Xu > Tested-by: John Allen > Tested-by: Kees Cook > Acked-by: Mike Rapoport (IBM) > Reviewed-by: Kees Cook > Signed-off-by: Yu-cheng Yu > Co-developed-by: Rick Edgecombe > Signed-off-by: Rick Edgecombe > Cc: Kees Cook > > --- > v7: > - Change is_stack_mapping() to know about VM_SHADOW_STACK so the > additions in vm_stat_account() can be dropped. (David Hildenbrand) > > v3: > - Remove unneeded VM_SHADOW_STACK check in accountable_mapping() > (Kirill) > > v2: > - Remove is_shadow_stack_mapping() and just change it to directly bitwis= e > and VM_SHADOW_STACK. > > Yu-cheng v26: > - Remove redundant #ifdef CONFIG_MMU. > > Yu-cheng v25: > - Remove #ifdef CONFIG_ARCH_HAS_SHADOW_STACK for is_shadow_stack_mapping= (). > --- > mm/internal.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index 7920a8b7982e..1d13d5580f64 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -491,14 +491,14 @@ static inline bool is_exec_mapping(vm_flags_t flags= ) > } > > /* > - * Stack area - automatically grows in one direction > + * Stack area > * > - * VM_GROWSUP / VM_GROWSDOWN VMAs are always private anonymous: > - * do_mmap() forbids all other combinations. > + * VM_GROWSUP, VM_GROWSDOWN VMAs are always private > + * anonymous. do_mmap() forbids all other combinations. > */ > static inline bool is_stack_mapping(vm_flags_t flags) > { > - return (flags & VM_STACK) =3D=3D VM_STACK; > + return ((flags & VM_STACK) =3D=3D VM_STACK) || (flags & VM_SHADOW= _STACK); Same comment here. `VM_SHADOW_STACK` is an x86 specific way of encoding a shadow stack. Instead let's have a proxy here which allows architectures to have their own encodings to represent a shadow stack. > } > > /* > -- > 2.17.1 >