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 A1EDFC4321E for ; Sat, 3 Dec 2022 00:37:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B5806B0071; Fri, 2 Dec 2022 19:37:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3658A6B007B; Fri, 2 Dec 2022 19:37:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 206486B007E; Fri, 2 Dec 2022 19:37:27 -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 0E5A26B007B for ; Fri, 2 Dec 2022 19:37:27 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id DF6361A0417 for ; Sat, 3 Dec 2022 00:37:26 +0000 (UTC) X-FDA: 80199131292.17.AC9A166 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf03.hostedemail.com (Postfix) with ESMTP id 37FE52000D for ; Sat, 3 Dec 2022 00:37:25 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Tvlxn3WV; spf=pass (imf03.hostedemail.com: domain of rick.p.edgecombe@intel.com designates 192.55.52.93 as permitted sender) smtp.mailfrom=rick.p.edgecombe@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670027846; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references:dkim-signature; bh=udV8Xc2KkKJNVzFok9LmZFYgqQbdMsOpmWfD5xkHaGg=; b=QG3Fx6B5sAxL+0mr3i05hZwG1K7WnmiFQWiesAi0NN4a3bmCOue20a36KdFTkGkJfZQhRr w0tKuYwhtLGlF3kPchjsvtFw1N9NeqPwj90dAtqZmy5ukl8ky8yICv1ErL2ISX/AzXzBe7 xjLyGY9yRDS1fHa3bJ+30+ohDAWNz0g= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Tvlxn3WV; spf=pass (imf03.hostedemail.com: domain of rick.p.edgecombe@intel.com designates 192.55.52.93 as permitted sender) smtp.mailfrom=rick.p.edgecombe@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670027846; a=rsa-sha256; cv=none; b=SQCuIYPlTGT0hwgM3DkxJUheaXfKhCGk3Re14bYYYoWvvcN0ag8NMhjKjxiQuyCD+PmiDW MR7xG6+c+AY/pDx7xsMlg7mTmh6Rn5OclPqy/MXInmATLQ+rcNnE4GdUKGqcwYMIRsiO7W I4AVcuem+uttD3DbXFXPdGgUbcGP3GA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1670027846; x=1701563846; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=xyn1ghT0ss9HjfLIsJBLdJfTOl5XEifC54z6shwmlw0=; b=Tvlxn3WVflQMXL+d/JlIlLGeebY7xsA143d5sxeExfvvxyCwmidaXObT 2edunGhOnWGo1f3nhCz73UzGUr2mKrsWIsNMmRmSoUE5m85YBIUP6f2m8 7ygzGCyYi+30uvXZ1/nufse/nUvOsG+p5gghNIJeKrSKAFj5Wu0jcP0Q2 K5jecSny5129XlgHMmAeWAKeOElYvIOPYY6MusM+2/UihoWjEUpjQryQq dBntQtOWrJo15aQt0W5DU6ZeADT9ayMPo1RcZ1y/wji31Tq4o50mv9E6H SOS3fTQ3FUqIsoaUFpKPCh77GaSYG9FrONXFMqkpm/80sr9JQQ6xu00Zl A==; X-IronPort-AV: E=McAfee;i="6500,9779,10549"; a="313711150" X-IronPort-AV: E=Sophos;i="5.96,213,1665471600"; d="scan'208";a="313711150" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Dec 2022 16:37:18 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10549"; a="787479918" X-IronPort-AV: E=Sophos;i="5.96,213,1665471600"; d="scan'208";a="787479918" Received: from bgordon1-mobl1.amr.corp.intel.com (HELO rpedgeco-desk.amr.corp.intel.com) ([10.212.211.211]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Dec 2022 16:37:15 -0800 From: Rick Edgecombe To: 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 Cc: rick.p.edgecombe@intel.com, Yu-cheng Yu Subject: [PATCH v4 20/39] mm/mmap: Add shadow stack pages to memory accounting Date: Fri, 2 Dec 2022 16:35:47 -0800 Message-Id: <20221203003606.6838-21-rick.p.edgecombe@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221203003606.6838-1-rick.p.edgecombe@intel.com> References: <20221203003606.6838-1-rick.p.edgecombe@intel.com> X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 37FE52000D X-Stat-Signature: tp35j549jjbnhgtubt7e3p16xzouaqwq X-Spamd-Result: default: False [-1.72 / 9.00]; BAYES_HAM(-3.32)[92.85%]; SUSPICIOUS_RECIPS(1.50)[]; MID_CONTAINS_FROM(1.00)[]; DMARC_POLICY_ALLOW(-0.50)[intel.com,none]; R_SPF_ALLOW(-0.20)[+ip4:192.55.52.93/32]; R_DKIM_ALLOW(-0.20)[intel.com:s=Intel]; MIME_GOOD(-0.10)[text/plain]; RCVD_NO_TLS_LAST(0.10)[]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_TWELVE(0.00)[40]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[intel.com:+]; TO_DN_SOME(0.00)[]; ARC_SIGNED(0.00)[hostedemail.com:s=arc-20220608:i=1]; TAGGED_RCPT(0.00)[]; ARC_NA(0.00)[] X-Rspam-User: X-HE-Tag: 1670027845-772119 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: 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. Tested-by: Pengfei Xu Tested-by: John Allen Signed-off-by: Yu-cheng Yu Co-developed-by: Rick Edgecombe Signed-off-by: Rick Edgecombe Cc: Kees Cook --- v3: - Remove unneeded VM_SHADOW_STACK check in accountable_mapping() (Kirill) v2: - Remove is_shadow_stack_mapping() and just change it to directly bitwise 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/mmap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/mmap.c b/mm/mmap.c index 146388feb72b..7ce04d2d5a10 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -3295,6 +3295,8 @@ void vm_stat_account(struct mm_struct *mm, vm_flags_t flags, long npages) mm->exec_vm += npages; else if (is_stack_mapping(flags)) mm->stack_vm += npages; + else if (flags & VM_SHADOW_STACK) + mm->stack_vm += npages; else if (is_data_mapping(flags)) mm->data_vm += npages; } -- 2.17.1