From nobody Sun Apr 28 15:45:04 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+90572+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+90572+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1655454521; cv=none; d=zohomail.com; s=zohoarc; b=kTgDz+qfrXTjpe9afjVsya/XyYCrnrEBio3F61yJE7i8WXbLRdx88qB2kWzDohaPmUkculDLgSo8VhTyMNEftbmCK8dITvJut+4uCNBU+69VVGrWIY6mPJVBzJNzyuRe3xsSAaBzjFkXLKpFevUYsOKAkCcna+ppdhOzDxLEPEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1655454521; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=Ep8fjtnVW05Znbz+UZS80XvJ0c5Ld61ZgW2oYQPuVXA=; b=N4ME45t/jRnNTvy3J5mJ7ovpWYZK0cMBnm7yXVvzR15mOc2QUEgon0tkEU99gPkB/++cjEEzQdCYQb2XbHYp3L9ICDOqQbwGSqUf0kqaEAShthGpyP0N9HqE3P+XnTiGQftXsPYcG97INxMz+jv3APILPf0vUrQ5ElXSewHIfX4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+90572+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1655454521353408.9202223471982; Fri, 17 Jun 2022 01:28:41 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id whRYYY1788612x4jbuvnpbwU; Fri, 17 Jun 2022 01:28:40 -0700 X-Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web09.28351.1655454513435386166 for ; Fri, 17 Jun 2022 01:28:34 -0700 X-IronPort-AV: E=McAfee;i="6400,9594,10380"; a="304904696" X-IronPort-AV: E=Sophos;i="5.92,306,1650956400"; d="scan'208";a="304904696" X-Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jun 2022 01:28:17 -0700 X-IronPort-AV: E=Sophos;i="5.92,306,1650956400"; d="scan'208";a="831949429" X-Received: from liuzhigu-mobl.ccr.corp.intel.com ([10.255.28.72]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jun 2022 01:28:15 -0700 From: "Zhiguang Liu" To: devel@edk2.groups.io Cc: Zhiguang Liu , Guo Dong , Ray Ni , Maurice Ma , Benjamin You , Sean Rhodes , Gerd Hoffmann Subject: [edk2-devel] [PATCH v2] UefiPayloadPkg: Always split page table entry to 4K if it covers stack. Date: Fri, 17 Jun 2022 16:28:03 +0800 Message-Id: <20220617082803.4428-1-zhiguang.liu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zhiguang.liu@intel.com X-Gm-Message-State: 369wMQakxxvoaQK71Nuziaimx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1655454520; bh=9KKb55icyk234N+oZGQiIWA7Pe90MhTN7R6dKIjJl1I=; h=Cc:Date:From:Reply-To:Subject:To; b=SjYv3mbK/WjAXk91oUPAS2MucUT8qmbSU+NOyEUtFL7lgvHwYpWbou6psVB7tfjhW1x WYaWx4y0JaLkFpftyQx0tZ+mRsJ2hBNFttXFEtOLHr3EHmw6x2PgvhBKjz491k2BNGVLr c2cDdaBOK40Lp79O7cdFjFdgEiFkSadrqz0= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1655454523231100003 Content-Type: text/plain; charset="utf-8" We observed page fault in the following situation: 1.PayloadEntry uses 2M entry in page table to cover DXE stack range. 2.In DXE phase, image protection code needs to mark some sub-range in this 2M entry as readonly. So the the 2M page table entry is split to 512 4K entries, and some of the entries are marked as readonly. (the entries covering stack still remain R/W) 3.Page fault exception happens when trying to access stack. Always split the page table entry to 4K if it covers stack to avoid this issue. More discussion about this issue can be seen at below link https://edk2.groups.io/g/devel/topic/91446026 Cc: Guo Dong Cc: Ray Ni Cc: Maurice Ma Cc: Benjamin You Cc: Sean Rhodes Cc: Gerd Hoffmann Signed-off-by: Zhiguang Liu Acked-by: Gerd Hoffmann Reviewed-by: Ray Ni --- UefiPayloadPkg/UefiPayloadEntry/X64/VirtualMemory.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/UefiPayloadPkg/UefiPayloadEntry/X64/VirtualMemory.c b/UefiPayl= oadPkg/UefiPayloadEntry/X64/VirtualMemory.c index ac0d58e685..74b667a62a 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/X64/VirtualMemory.c +++ b/UefiPayloadPkg/UefiPayloadEntry/X64/VirtualMemory.c @@ -218,16 +218,8 @@ ToSplitPageTable ( return TRUE; } =20 - if (PcdGetBool (PcdCpuStackGuard)) { - if ((StackBase >=3D Address) && (StackBase < (Address + Size))) { - return TRUE; - } - } - - if (PcdGetBool (PcdSetNxForStack)) { - if ((Address < StackBase + StackSize) && ((Address + Size) > StackBase= )) { - return TRUE; - } + if ((Address < StackBase + StackSize) && ((Address + Size) > StackBase))= { + return TRUE; } =20 if (GhcbBase !=3D 0) { --=20 2.16.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90572): https://edk2.groups.io/g/devel/message/90572 Mute This Topic: https://groups.io/mt/91817347/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-