From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=yonghong.zhu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 A7A9C20945B97 for ; Sun, 24 Sep 2017 19:30:38 -0700 (PDT) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Sep 2017 19:33:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,434,1500966000"; d="scan'208";a="315710666" Received: from shwdeopenpsi168.ccr.corp.intel.com ([10.239.158.121]) by fmsmga004.fm.intel.com with ESMTP; 24 Sep 2017 19:33:47 -0700 From: Yonghong Zhu To: edk2-devel@lists.01.org Cc: Liming Gao , Michael Kinney , Kevin W Shaw Date: Mon, 25 Sep 2017 10:33:46 +0800 Message-Id: <1506306826-11996-1-git-send-email-yonghong.zhu@intel.com> X-Mailer: git-send-email 2.6.1.windows.1 Subject: [Patch] Build Spec: Build report to display every module's build time X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Sep 2017 02:30:38 -0000 fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=717 Cc: Liming Gao Cc: Michael Kinney Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yonghong Zhu --- 13_build_reports/134_platform_summary.md | 8 +++++- 13_build_reports/138_module_section.md | 43 +++++++++++++++++++------------- README.md | 1 + 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/13_build_reports/134_platform_summary.md b/13_build_reports/134_platform_summary.md index 0674141..083d714 100644 --- a/13_build_reports/134_platform_summary.md +++ b/13_build_reports/134_platform_summary.md @@ -41,10 +41,13 @@ following items: * Tool Chain : %Tool chain string% * Target : %Target String" * Output Path : %Path to platform build directory% * Build Environment : %Environment string reported by Python% * Build Duration : %Build duration time string% +* AutoGen Duration : %AutoGen duration time string if it exists% +* Make Duration : %Make duration time string if it exists% +* GenFds Duration : %GenFds duration time string if it exists% * Report Content : %List of flags the control the report content% #### Example ``` @@ -53,11 +56,14 @@ Platform DSC Path: s:\edk2\Nt32Pkg\Nt32Pkg.dsc Architectures: IA32 Tool Chain: VS2008x86 Target: DEBUG Output Path: s:\edk2\Build\NT32IA32 Build Environment: Windows-7-6.1.7601-SP1 -Build Duration: 00:01:53 +Build Duration: 00:01:29 +AutoGen Duration: 00:00:10 +Make Duration: 00:01:02 +GenFds Duration: 00:00:15 Report Contents: PCD, LIBRARY, BUILD_FLAGS, DEPEX, FLASH, FIXED_ADDRESS ``` ********** **Note:** Platform Summary is always present and appears at the beginning of diff --git a/13_build_reports/138_module_section.md b/13_build_reports/138_module_section.md index d4aa365..455537b 100644 --- a/13_build_reports/138_module_section.md +++ b/13_build_reports/138_module_section.md @@ -45,10 +45,11 @@ file GUID, module size, module build time stamp and driver type. * Module INF Path: %Path of Module INF file% * File GUID: %Module GUID: '`FILE_GUID`' in INF `[Defines]` section% * Size: %Module EFI image size% * Build time stamp: %The time stamp in module PE32 image% (If the time stamp is cleared to be zero, the build time stamp is 1970-01-01 00:00:00 UTC time.) +* Module Build Time: %The time string for this module's build% * Driver Type: %The driver's file type code[^2] and name in firmware volume% The following entries are options: * If using defaults or the `HASH` flag is specified: @@ -77,10 +78,11 @@ Module Name: SmbiosDxe Module INF Path: MdeModule\Universal\SmbiosDxe\SmbiosDxe.inf File GUID: F9D88642-0737-49BC-81B5-6889CD57D9EA Size: 0x7000 (28.00K) SHA1 HASH: d94c3f180f25d6b562f477bc4a16b286cb66a8b6 *SmbiosDxe.efi Build Time Stamp: 1969-12-31 16:00:00 +Module Build Time: 1060ms Driver Type: 0x7 (DRIVER) ============================================================================ ... (Module Section Details for SmbiosDxe) <==========================================================================> ``` @@ -94,10 +96,11 @@ Module Name: EbcDxe Module INF Path: MdeModule\Universal\EbcDxe\EbcDxe.inf File GUID: 13AC6DD0-73D0-11D4-B06B-00AA00BD6DE7 Size: 0x9000 (36.00K) SHA1 HASH: ff4c019345614afe5c88e7fc37219c30a07f4af4 *EbcDxe.efi Time Stamp: 1969-12-31 16:00:00 +Module Build Time: 1731ms Driver Type: 0x7 (DRIVER) ============================================================================ ... (Module Section Details for EbcDxe) <==========================================================================> @@ -114,10 +117,11 @@ destructor calling sequence. * Library INF Path: Path of library instance INF file * Class\*: The library class name of the library instance * C\*: The library constructor if it exists * D\*: The library destructor if it exists +* Time: The build time of this library if it exists The items marked with \* are only available when the module is an EDKII style module and they must be listed in the next line immediately after library instance's INF path. @@ -141,50 +145,55 @@ format is: inserted in the curly braces before the closing curly brace. ``` D = DestructorCname ``` + * Display the build time. + ``` + Time = TimeString + ``` + #### Example1: ```c >--------------------------------------------------------------------------< Library --------------------------------------------------------------------------- s:\edk2\MdePkg\Library\UefiDevicePathLib\UefiDevicePathLib.inf -{DevicePathLib} +{DevicePathLib: Time = 643ms} s:\edk2\MdePkg\Library\BaseLib\BaseLib.inf -{BaseLib} +{BaseLib: Time = 14702ms} s:\edk2\MdePkg\Library\BaseMemoryLib\BaseMemoryLib.inf -{BaseMemoryLib} +{BaseMemoryLib: Time = 284ms} s:\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf -{MemoryAllocationLib} +{MemoryAllocationLib: Time = 249ms} s:\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf -{UefiBootServicesTableLib: C = UefiBootServicesTableLibConstructor} +{UefiBootServicesTableLib: C = UefiBootServicesTableLibConstructor Time = 219ms} s:\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf -{PcdLib: C = PcdLibConstructor} +{PcdLib: C = PcdLibConstructor Time = 265ms} s:\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf -{UefiRuntimeServicesTableLib: C = UefiRuntimeServicesLibConstructor} +{UefiRuntimeServicesTableLib: C = UefiRuntimeServicesLibConstructor Time = 203ms} s:\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsic.inf -{IoLib} +{IoLib: Time = 702ms} s:\edk2\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib.inf -{PciCf8Lib} +{PciCf8Lib: Time = 345ms} s:\edk2\MdePkg\Library\BasePciLibCf8\BasePciLibCf8.inf -{PciLib} +{PciLib: Time = 341ms} s:\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf -{PrintLib} +{PrintLib: Time = 312ms} s:\edk2\Ich9Pkg\Library\IntelIchAcpiTimerLib\IntelIchAcpiTimerLib.inf -{TimerLib: C = IntelAcpiTimerLibConstructor} +{TimerLib: C = IntelAcpiTimerLibConstructor Time = 282ms} s:\edk2\MdePkg\Library\UefiLib\UefiLib.inf -{UefiLib} +{UefiLib: Time = 733ms} s:\edk2\MdePkg\Library\BaseSynchronizationLib\BaseSynchronizationLib.inf -{SynchronizationLib} +{SynchronizationLib: Time = 920ms} s:\edk2\MdePkg\Library\DxeHobLib\DxeHobLib.inf -{HobLib: C = DxeHobLibConstructor} +{HobLib: C = DxeHobLibConstructor Time = 218ms} s:\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf -{UefiDriverEntryPoint} +{UefiDriverEntryPoint Time = 234ms} s:\edk2\MdePkg\Library\UefiRuntimeLib\UefiRuntimeLib.inf -{UefiRuntimeLib: C = UefiRuntimeLibConstructor D = UefiRuntimeLibDestructor} +{UefiRuntimeLib: C = UefiRuntimeLibConstructor D = UefiRuntimeLibDestructor Time = 265ms} <--------------------------------------------------------------------------> ``` #### Example2: diff --git a/README.md b/README.md index 52abb6a..f174aed 100644 --- a/README.md +++ b/README.md @@ -215,5 +215,6 @@ Copyright (c) 2008-2017, Intel Corporation. All rights reserved. | | [#523](https://bugzilla.tianocore.org/show_bug.cgi?id=523) Build spec: add EBNF for the --pcd syntax in the Section D.4 | | | | [#517](https://bugzilla.tianocore.org/show_bug.cgi?id=517) Build spec: chapter 5.2.2 Guided Tools add description for Pkcs7Sign tool and BrotliCompress tool | | | | [#481](https://bugzilla.tianocore.org/show_bug.cgi?id=481) Build Spec: add clarification for not used Pcd that build tool will not do additional checks on its value | | | | [#518](https://bugzilla.tianocore.org/show_bug.cgi?id=518) Build Spec: Update Precedence of PCD Values | | | | [#669](https://bugzilla.tianocore.org/show_bug.cgi?id=669) Build Spec: Add multi-arg support to PREBUILD/POSTBUILD | | +| | [#717](https://bugzilla.tianocore.org/show_bug.cgi?id=717) Build Spec: Build report to display every module's build time | | -- 2.6.1.windows.1