From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8A30B81F3F for ; Thu, 2 Feb 2017 21:32:18 -0800 (PST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP; 02 Feb 2017 21:32:18 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,327,1477983600"; d="scan'208";a="1090349828" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga001.jf.intel.com with ESMTP; 02 Feb 2017 21:32:18 -0800 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 2 Feb 2017 21:32:17 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 2 Feb 2017 21:32:17 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.88]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.177]) with mapi id 14.03.0248.002; Fri, 3 Feb 2017 13:32:14 +0800 From: "Yao, Jiewen" To: "Kinney, Michael D" , "edk2-devel@lists.01.org" CC: Andrew Fish , "Gao, Liming" , "Carsey, Jaben" , "Zeng, Star" Thread-Topic: [edk2] [PATCH v4 1/3] MdeModulePkg: Add performance property configuration table Thread-Index: AQHSfdnO6B7hF4AIhESD2LnWOm4dE6FWweqQ Date: Fri, 3 Feb 2017 05:32:14 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503A8E8BED@shsmsx102.ccr.corp.intel.com> References: <1486097737-12816-1-git-send-email-michael.d.kinney@intel.com> <1486097737-12816-2-git-send-email-michael.d.kinney@intel.com> In-Reply-To: <1486097737-12816-2-git-send-email-michael.d.kinney@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v4 1/3] MdeModulePkg: Add performance property configuration table X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Feb 2017 05:32:18 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thank you Mike and Star. It is good idea to remove TimerLib dependency. Series Reviewed-by: Jiewen.yao@intel.com > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Michael Kinney > Sent: Friday, February 3, 2017 12:56 PM > To: edk2-devel@lists.01.org > Cc: Andrew Fish ; Gao, Liming ; Ya= o, > Jiewen ; Carsey, Jaben ; Ze= ng, > Star > Subject: [edk2] [PATCH v4 1/3] MdeModulePkg: Add performance property > configuration table >=20 > From: Star Zeng >=20 > Define PERFORMANCE_PROPERTY, and install performance property > configuration > table in DxeCorePerformanceLib and SmmCorePerformanceLib. >=20 > Cc: Andrew Fish > Cc: Michael Kinney > Cc: Liming Gao > Cc: Jiewen Yao > Cc: Cinnamon Shia > Cc: Jaben Carsey > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Star Zeng > --- > MdeModulePkg/Include/Guid/Performance.h | 12 ++++++++++- > .../DxeCorePerformanceLib/DxeCorePerformanceLib.c | 23 > ++++++++++++++++++++-- > .../DxeCorePerformanceLib.inf | 2 ++ > .../DxeCorePerformanceLibInternal.h | 3 ++- > .../SmmCorePerformanceLib/SmmCorePerformanceLib.c | 18 > +++++++++++++++++ > .../SmmCorePerformanceLib.inf | 5 ++++- > 6 files changed, 58 insertions(+), 5 deletions(-) >=20 > diff --git a/MdeModulePkg/Include/Guid/Performance.h > b/MdeModulePkg/Include/Guid/Performance.h > index c40046c..df40c6c 100644 > --- a/MdeModulePkg/Include/Guid/Performance.h > +++ b/MdeModulePkg/Include/Guid/Performance.h > @@ -4,7 +4,7 @@ > * performance protocol interfaces. > * performance variables. >=20 > -Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
> +Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials are licensed and made availa= ble > under > the terms and conditions of the BSD License that accompanies this distri= bution. > The full text of the license may be found at > @@ -18,6 +18,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY > KIND, EITHER EXPRESS OR IMPLIED. > #ifndef __PERFORMANCE_DATA_H__ > #define __PERFORMANCE_DATA_H__ >=20 > +#define PERFORMANCE_PROPERTY_REVISION 0x1 > + > +typedef struct { > + UINT32 Revision; > + UINT32 Reserved; > + UINT64 Frequency; > + UINT64 TimerStartValue; > + UINT64 TimerEndValue; > +} PERFORMANCE_PROPERTY; > + > // > // PEI_PERFORMANCE_STRING_SIZE must be a multiple of 8. > // > diff --git > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > index 4739bb8..1564514 100644 > --- > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > +++ > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c > @@ -10,7 +10,7 @@ > This library is mainly used by DxeCore to start performance logging to= ensure > that > Performance Protocol is installed at the very beginning of DXE phase. >=20 > -Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> (C) Copyright 2016 Hewlett Packard Enterprise Development LP
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > @@ -61,6 +61,8 @@ PERFORMANCE_EX_PROTOCOL mPerformanceExInterface > =3D { > GetGaugeEx > }; >=20 > +PERFORMANCE_PROPERTY mPerformanceProperty; > + > /** > Searches in the gauge array with keyword Handle, Token, Module and > Identifier. >=20 > @@ -502,6 +504,8 @@ DxeCorePerformanceLibConstructor ( > ) > { > EFI_STATUS Status; > + PERFORMANCE_PROPERTY *PerformanceProperty; > + >=20 > if (!PerformanceMeasurementEnabled ()) { > // > @@ -531,7 +535,22 @@ DxeCorePerformanceLibConstructor ( >=20 > InternalGetPeiPerformance (); >=20 > - return Status; > + Status =3D EfiGetSystemConfigurationTable (&gPerformanceProtocolGuid, > &PerformanceProperty); > + if (EFI_ERROR (Status)) { > + // > + // Install configuration table for performance property. > + // > + mPerformanceProperty.Revision =3D > PERFORMANCE_PROPERTY_REVISION; > + mPerformanceProperty.Reserved =3D 0; > + mPerformanceProperty.Frequency =3D GetPerformanceCounterProperties ( > + > &mPerformanceProperty.TimerStartValue, > + > &mPerformanceProperty.TimerEndValue > + ); > + Status =3D gBS->InstallConfigurationTable (&gPerformanceProtocolGuid= , > &mPerformanceProperty); > + ASSERT_EFI_ERROR (Status); > + } > + > + return EFI_SUCCESS; > } >=20 > /** > diff --git > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > index e091c62..5b89ce2 100644 > --- > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > +++ > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf > @@ -56,11 +56,13 @@ > BaseLib > HobLib > DebugLib > + UefiLib >=20 >=20 > [Guids] > ## SOMETIMES_CONSUMES ## HOB > ## PRODUCES ## UNDEFINED # Install protocol > + ## PRODUCES ## SystemTable > gPerformanceProtocolGuid > ## SOMETIMES_CONSUMES ## HOB > ## PRODUCES ## UNDEFINED # Install protocol > diff --git > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLibInt > ernal.h > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLibInt > ernal.h > index 2b9ccd2..f1540d8 100644 > --- > a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLibInt > ernal.h > +++ > b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLibInt > ernal.h > @@ -4,7 +4,7 @@ > This header file holds the prototypes of the Performance and Performan= ceEx > Protocol published by this > library instance at its constructor. >=20 > -Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > which accompanies this distribution. The full text of the license may b= e found > at > @@ -32,6 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, > EITHER EXPRESS OR IMPLIED. > #include > #include > #include > +#include >=20 > // > // Interface declarations for PerformanceEx Protocol. > diff --git > a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib. > c > b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib. > c > index 6f8d2dd..a03a8c8 100644 > --- > a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib. > c > +++ > b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib. > c > @@ -69,6 +69,8 @@ PERFORMANCE_EX_PROTOCOL mPerformanceExInterface > =3D { > GetGaugeEx > }; >=20 > +PERFORMANCE_PROPERTY mPerformanceProperty; > + > /** > Searches in the gauge array with keyword Handle, Token, Module and > Identfier. >=20 > @@ -687,6 +689,7 @@ InitializeSmmCorePerformanceLib ( > { > EFI_STATUS Status; > EFI_HANDLE Handle; > + PERFORMANCE_PROPERTY *PerformanceProperty; >=20 > // > // Initialize spin lock > @@ -725,6 +728,21 @@ InitializeSmmCorePerformanceLib ( > ASSERT_EFI_ERROR (Status); > Status =3D gSmst->SmiHandlerRegister (SmmPerformanceHandlerEx, > &gSmmPerformanceExProtocolGuid, &Handle); > ASSERT_EFI_ERROR (Status); > + > + Status =3D EfiGetSystemConfigurationTable (&gPerformanceProtocolGuid, > &PerformanceProperty); > + if (EFI_ERROR (Status)) { > + // > + // Install configuration table for performance property. > + // > + mPerformanceProperty.Revision =3D > PERFORMANCE_PROPERTY_REVISION; > + mPerformanceProperty.Reserved =3D 0; > + mPerformanceProperty.Frequency =3D GetPerformanceCounterProperties ( > + > &mPerformanceProperty.TimerStartValue, > + > &mPerformanceProperty.TimerEndValue > + ); > + Status =3D gBS->InstallConfigurationTable (&gPerformanceProtocolGuid= , > &mPerformanceProperty); > + ASSERT_EFI_ERROR (Status); > + } > } >=20 > /** > diff --git > a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.i > nf > b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.i > nf > index 160a749..1b2fbd3 100644 > --- > a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.i > nf > +++ > b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.i > nf > @@ -8,7 +8,7 @@ > # This library is mainly used by SMM Core to start performance logging = to > ensure that > # SMM Performance and PerformanceEx Protocol are installed at the very > beginning of SMM phase. > # > -# Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved. > +# Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved. > # This program and the accompanying materials > # are licensed and made available under the terms and conditions of the= BSD > License > # which accompanies this distribution. The full text of the license ma= y be > found at > @@ -57,6 +57,7 @@ > SynchronizationLib > SmmServicesTableLib > SmmMemLib > + UefiLib >=20 > [Protocols] > gEfiSmmBase2ProtocolGuid ## CONSUMES > @@ -68,6 +69,8 @@ > ## PRODUCES ## UNDEFINED # Install protocol > ## CONSUMES ## UNDEFINED # SmiHandlerRegister > gSmmPerformanceExProtocolGuid > + ## PRODUCES ## SystemTable > + gPerformanceProtocolGuid >=20 > [Pcd] > gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## > CONSUMES > -- > 2.6.3.windows.1 >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel