public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Yonghong Zhu <yonghong.zhu@intel.com>
To: edk2-devel@lists.01.org
Cc: Liming Gao <liming.gao@intel.com>,
	Michael Kinney <michael.d.kinney@intel.com>,
	Kevin W Shaw <kevin.w.shaw@intel.com>
Subject: [Patch] Build Spec: Build report to display every module's build time
Date: Mon, 25 Sep 2017 10:33:46 +0800	[thread overview]
Message-ID: <1506306826-11996-1-git-send-email-yonghong.zhu@intel.com> (raw)

fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=717
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 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



             reply	other threads:[~2017-09-25  2:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-25  2:33 Yonghong Zhu [this message]
2017-09-26  3:38 ` [Patch] Build Spec: Build report to display every module's build time Gao, Liming

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1506306826-11996-1-git-send-email-yonghong.zhu@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox