Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp1556972rwl; Fri, 4 Nov 2022 15:53:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4DwIkr1rvwJan8ULqfLaNi4WHJsD9fFR/Az1bzH9YrAC3f/HpJAVPi+b82B8ocgpBAm8Nz X-Received: by 2002:a17:90a:cb8b:b0:211:7744:d155 with SMTP id a11-20020a17090acb8b00b002117744d155mr55056145pju.187.1667602413539; Fri, 04 Nov 2022 15:53:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667602413; cv=none; d=google.com; s=arc-20160816; b=D/y7L3X0N/AG97amU0zEgNbVd12L6FrBOklMGTRgTjRRczs2uotReZP6hp32iynklH CfnsMswygSGE6Ga6kCVPNTgDZSBNDmbMDYjhBAcR8yhXr2gCKxhkKNYYZFUTlq7NuEbL lQAFZBlZ1Aw1Jg7HUs3g5fhw1YBNJ79Gfv8HYH7bX0iUUt2G/cgJ6O0dvUaBRfqIhqeJ Z7zh0DUJaic7kQoTBv8XUCPL/wV3H6GkHM80KDVAtUfKlO57das6JUKjRfXVVzOwM+EU YPT93QvrXq3n0T2Rlq6IHdDWq7wFKRbPYkIRx1fxeF/Frm159r8s7DBsVPz6dobNXDW7 Wj2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=OS38q1UI76P3zo2mEE1/FuGGSmIk3DJz+B+bAUpkUYk=; b=Bm5yi60d92VVfgKvjbLnkfdCpqK2rRIl6d1mUK8OsnzCtvu2GSbFaDbamMMOPlpAQ5 ZoktpnfaQaiDt4Q3tZDbh0m9h58TWMAjC/xQb9GFGtnfl67Hc8HsryRUVugh21rAewG/ MvqLbZv1Z5bc8Ce1/lehJUWe5+OvQextLMiBWxt0pTH8r+N/fxrHyHKFFCRTUr5cBYx2 vYFIj3SYvCniBeBgwAqSdT1Dk1gMAoEhdViuYB3trZa0t2WWxctwEEHZR49dpU3DfL4w xxYpJtyZPk7xkrmowQkOdrYAMa2ouKJD7vgnNsnkqOSiq7s210Mgh5n7HjhKicIgPPqs 6nzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hVRKlIIS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 38-20020a631766000000b004701139ec1dsi979805pgx.392.2022.11.04.15.53.21; Fri, 04 Nov 2022 15:53:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hVRKlIIS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230200AbiKDWmd (ORCPT + 97 others); Fri, 4 Nov 2022 18:42:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230189AbiKDWlf (ORCPT ); Fri, 4 Nov 2022 18:41:35 -0400 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0F2C4E416; Fri, 4 Nov 2022 15:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1667601580; x=1699137580; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=QCRYLxuft9By+ea93NBBljihOI4kEYqg35nP/V5qBtI=; b=hVRKlIISj5c7QqVHNns+LxPHtM8v7CamYB0xN3pu3JkES5y33sKnwY1u 7PK6E/N2nH1HECFvM0BT2kVsi96U/+Bk8c2OD2mpBRnw/xlw6t9EZrLhc l1mkRI1FF5cvpVZiagyO2fMo5priKOKPCY3i7wIpBOFQycdzoqNdBvMat PYOGjRqmrFqTRGFr3Lw2bgv+pof3on4eEqHwz1LCongwNLSH6SD8TOpmH fWcnPMhd6wZZv8js63x90RqQ09pJfo5nQ1UK6TbbpEmalDyeddMB5Xkvs PedHk2Kq6IBXxFa3gDrbYupNt4YLEpCmH631pclIEf9vlPX/5vI7sdikz Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10521"; a="311840556" X-IronPort-AV: E=Sophos;i="5.96,138,1665471600"; d="scan'208";a="311840556" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2022 15:39:39 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10521"; a="668514085" X-IronPort-AV: E=Sophos;i="5.96,138,1665471600"; d="scan'208";a="668514085" Received: from adhjerms-mobl1.amr.corp.intel.com (HELO rpedgeco-desk.amr.corp.intel.com) ([10.212.227.68]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2022 15:39:38 -0700 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 , "Ravi V . Shankar" , 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 Cc: rick.p.edgecombe@intel.com, Yu-cheng Yu Subject: [PATCH v3 19/37] mm/mmap: Add shadow stack pages to memory accounting Date: Fri, 4 Nov 2022 15:35:46 -0700 Message-Id: <20221104223604.29615-20-rick.p.edgecombe@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221104223604.29615-1-rick.p.edgecombe@intel.com> References: <20221104223604.29615-1-rick.p.edgecombe@intel.com> X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 f67606fbc464..4dc157869b34 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -3298,6 +3298,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