From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: citrix.com, ip: 216.71.155.168, mailfrom: anthony.perard@citrix.com) Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com [216.71.155.168]) by groups.io with SMTP; Thu, 04 Jul 2019 07:58:28 -0700 Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: CX2wCejDg7Ql7Rtt78ssxEVb5MMTqCp+ARwyB+sRhTKW2At5Nknw+yGwVOqnZqpFfvgvaac0nw bNajFz59gbI0rAILIT4URtana9z29z8mniDqPrO/W5saAzPaIWE37/A/Sr6G6kzVDf4sr5iOvB 12XePkY47zOX4g419DyTTE/9ZRHpGT1cNANOp7qSNTlBt5dWY/orYAGO5LZ47s5QgJIOEvgfA3 59fz9yg5tSw2NpiHw2pwdw4qA2+s1f3eKsEQcPhQyj4X7OkzvDS4ej7i0A5EuZ+KuTsfo4gKKk HxI= X-SBRS: 2.7 X-MesageID: 2623846 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.63,451,1557201600"; d="scan'208";a="2623846" From: "Anthony PERARD" To: CC: , Ard Biesheuvel , Jordan Justen , Laszlo Ersek , Julien Grall , Anthony PERARD Subject: [PATCH v3 27/35] OvmfPkg/XenPlatformLib: Cache result for XenDetected Date: Thu, 4 Jul 2019 15:42:25 +0100 Message-ID: <20190704144233.27968-28-anthony.perard@citrix.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190704144233.27968-1-anthony.perard@citrix.com> References: <20190704144233.27968-1-anthony.perard@citrix.com> MIME-Version: 1.0 Return-Path: anthony.perard@citrix.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain We are going to replace XenDetected() implementation in PlatformBootManagerLib by the one in XenPlatformLib. PlatformBootManagerLib's implementation does cache the result of GetFirstGuidHob(), so we do something similar in XenPlatformLib. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1689 Signed-off-by: Anthony PERARD --- Notes: v3: - new patch .../Library/XenPlatformLib/XenPlatformLib.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c b/OvmfPkg/Libr= ary/XenPlatformLib/XenPlatformLib.c index 6f27cbffa8..b5257b0c97 100644 --- a/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c +++ b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c @@ -26,13 +26,25 @@ XenGetInfoHOB ( )=0D {=0D EFI_HOB_GUID_TYPE *GuidHob;=0D + STATIC BOOLEAN Cached =3D FALSE;=0D + STATIC EFI_XEN_INFO *XenInfo;=0D +=0D + //=0D + // Return the cached result for the benefit of XenDetected that can be=0D + // called many times.=0D + //=0D + if (Cached) {=0D + return XenInfo;=0D + }=0D =0D GuidHob =3D GetFirstGuidHob (&gEfiXenInfoGuid);=0D if (GuidHob =3D=3D NULL) {=0D - return NULL;=0D + XenInfo =3D NULL;=0D + } else {=0D + XenInfo =3D (EFI_XEN_INFO *) GET_GUID_HOB_DATA (GuidHob);=0D }=0D -=0D - return (EFI_XEN_INFO *) GET_GUID_HOB_DATA (GuidHob);=0D + Cached =3D TRUE;=0D + return XenInfo;=0D }=0D =0D /**=0D --=20 Anthony PERARD