[edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build

Li, Yi posted 1 patch 10 months, 1 week ago
Failed in applying to current master (apply log)
.../PlatformCI/.azurepipelines/Ubuntu-GCC5.yml  | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
[edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Li, Yi 10 months, 1 week ago
The effect of LTO is limited with optimization turned off, and blocked
the upgrade of Openssl3.0. We already skipped this build with VS2019,
skip the GCC NOOPT build also.

Signed-off-by: Yi Li <yi1.li@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 .../PlatformCI/.azurepipelines/Ubuntu-GCC5.yml  | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index ad43f9fad2..5809152d26 100644
--- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -109,13 +109,16 @@ jobs:
             Build.Target: "RELEASE"
             Run.Flags: $(run_flags)
             Run: $(should_run)
-          OVMF_IA32X64_FULL_NOOPT:
-            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
-            Build.Arch: "IA32,X64"
-            Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
-            Build.Target: "NOOPT"
-            Run.Flags: $(run_flags)
-            Run: $(should_run)
+          # This currently creates a very large image which is too big for the FDF declared range,
+          # skip this build for now.
+          #
+          # OVMF_IA32X64_FULL_NOOPT:
+          #   Build.File: "$(package)/PlatformCI/PlatformBuild.py"
+          #   Build.Arch: "IA32,X64"
+          #   Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
+          #   Build.Target: "NOOPT"
+          #   Run.Flags: $(run_flags)
+          #   Run: $(should_run)
 
           AMDSEV_X64_DEBUG:
             Build.File: "$(package)/PlatformCI/AmdSevBuild.py"
-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106206): https://edk2.groups.io/g/devel/message/106206
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Pedro Falcato 10 months, 1 week ago
On Tue, 20 Jun 2023, 12:11 Li, Yi, <yi1.li@intel.com> wrote:

> The effect of LTO is limited with optimization turned off, and blocked
> the upgrade of Openssl3.0. We already skipped this build with VS2019,
> skip the GCC NOOPT build also.
>
Hi,

If LTO is the problem here, have you given ffunction-sections +
fdata-sections + gc-sections a spin?

It may end up working, though I genuinely don't remember if the GCC
toolchain has that on regardless (and wont be able to check foe the next
few days)...


> Signed-off-by: Yi Li <yi1.li@intel.com>
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  .../PlatformCI/.azurepipelines/Ubuntu-GCC5.yml  | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
> b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
> index ad43f9fad2..5809152d26 100644
> --- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
> +++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
> @@ -109,13 +109,16 @@ jobs:
>              Build.Target: "RELEASE"
>              Run.Flags: $(run_flags)
>              Run: $(should_run)
> -          OVMF_IA32X64_FULL_NOOPT:
> -            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
> -            Build.Arch: "IA32,X64"
> -            Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1
> BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1
> BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
> -            Build.Target: "NOOPT"
> -            Run.Flags: $(run_flags)
> -            Run: $(should_run)
> +          # This currently creates a very large image which is too big
> for the FDF declared range,
> +          # skip this build for now.
> +          #
> +          # OVMF_IA32X64_FULL_NOOPT:
> +          #   Build.File: "$(package)/PlatformCI/PlatformBuild.py"
> +          #   Build.Arch: "IA32,X64"
> +          #   Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1
> BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1
> BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
> +          #   Build.Target: "NOOPT"
> +          #   Run.Flags: $(run_flags)
> +          #   Run: $(should_run)
>
>            AMDSEV_X64_DEBUG:
>              Build.File: "$(package)/PlatformCI/AmdSevBuild.py"
> --
> 2.31.1.windows.1
>
>
>
> 
>
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106226): https://edk2.groups.io/g/devel/message/106226
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Gerd Hoffmann 10 months, 1 week ago
On Wed, Jun 21, 2023 at 01:40:06AM +0100, Pedro Falcato wrote:
> On Tue, 20 Jun 2023, 12:11 Li, Yi, <yi1.li@intel.com> wrote:
> 
> > The effect of LTO is limited with optimization turned off, and blocked
> > the upgrade of Openssl3.0. We already skipped this build with VS2019,
> > skip the GCC NOOPT build also.
> >
> Hi,
> 
> If LTO is the problem here, have you given ffunction-sections +
> fdata-sections + gc-sections a spin?

lto alone works and reduces size a bit, also turning on optimizations
has a much bigger effect though.  Which I suspect happens because gcc
detects constant expressions then, calculates them at compile time
instead of runtime, which in turn removes function calls in code paths
never taken.

take care,
  Gerd



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106252): https://edk2.groups.io/g/devel/message/106252
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Pedro Falcato 10 months, 1 week ago
On Wed, Jun 21, 2023 at 8:55 AM Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> On Wed, Jun 21, 2023 at 01:40:06AM +0100, Pedro Falcato wrote:
> > On Tue, 20 Jun 2023, 12:11 Li, Yi, <yi1.li@intel.com> wrote:
> >
> > > The effect of LTO is limited with optimization turned off, and blocked
> > > the upgrade of Openssl3.0. We already skipped this build with VS2019,
> > > skip the GCC NOOPT build also.
> > >
> > Hi,
> >
> > If LTO is the problem here, have you given ffunction-sections +
> > fdata-sections + gc-sections a spin?
>
> lto alone works and reduces size a bit, also turning on optimizations
> has a much bigger effect though.  Which I suspect happens because gcc
> detects constant expressions then, calculates them at compile time
> instead of runtime, which in turn removes function calls in code paths
> never taken.

Right, LTO is of course a lot less limited when it comes to this and
may give out further size reductions. But if we can't enable LTO (as
in NOOPT), gc-sections /may/ help here; gc-sections will *not* affect
debugging whatsoever.
Of course, whether this works is pure speculation; I personally
haven't tested this.

-- 
Pedro


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106263): https://edk2.groups.io/g/devel/message/106263
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Ard Biesheuvel 10 months ago
On Wed, 21 Jun 2023 at 16:13, Pedro Falcato <pedro.falcato@gmail.com> wrote:
>
> On Wed, Jun 21, 2023 at 8:55 AM Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> > On Wed, Jun 21, 2023 at 01:40:06AM +0100, Pedro Falcato wrote:
> > > On Tue, 20 Jun 2023, 12:11 Li, Yi, <yi1.li@intel.com> wrote:
> > >
> > > > The effect of LTO is limited with optimization turned off, and blocked
> > > > the upgrade of Openssl3.0. We already skipped this build with VS2019,
> > > > skip the GCC NOOPT build also.
> > > >
> > > Hi,
> > >
> > > If LTO is the problem here, have you given ffunction-sections +
> > > fdata-sections + gc-sections a spin?
> >
> > lto alone works and reduces size a bit, also turning on optimizations
> > has a much bigger effect though.  Which I suspect happens because gcc
> > detects constant expressions then, calculates them at compile time
> > instead of runtime, which in turn removes function calls in code paths
> > never taken.
>
> Right, LTO is of course a lot less limited when it comes to this and
> may give out further size reductions. But if we can't enable LTO (as
> in NOOPT), gc-sections /may/ help here; gc-sections will *not* affect
> debugging whatsoever.
> Of course, whether this works is pure speculation; I personally
> haven't tested this.
>

I don't mind this change, but could we also bump the FV size for NOOPT
builds only? Or does that create problems elsewhere?


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106423): https://edk2.groups.io/g/devel/message/106423
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Li, Yi 10 months, 1 week ago
Hello, I didn’t mean LTO doesn't work.

For the NOOPT build target, we did not enable LTO or any optimization flag:
DEBUG_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386
NOOPT_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386 -O0

Adding more flags to NOOPT may affect other builds and unittest debug. So I tend to skip this build target.

Regards,
Yi

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Pedro Falcato
Sent: Wednesday, June 21, 2023 8:40 AM
To: edk2-devel-groups-io <devel@edk2.groups.io>; Li, Yi1 <yi1.li@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>; Yao, Jiewen <jiewen.yao@intel.com>; Justen, Jordan L <jordan.l.justen@intel.com>; Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build

On Tue, 20 Jun 2023, 12:11 Li, Yi, <yi1.li@intel.com<mailto:yi1.li@intel.com>> wrote:
The effect of LTO is limited with optimization turned off, and blocked
the upgrade of Openssl3.0. We already skipped this build with VS2019,
skip the GCC NOOPT build also.
Hi,

If LTO is the problem here, have you given ffunction-sections + fdata-sections + gc-sections a spin?

It may end up working, though I genuinely don't remember if the GCC toolchain has that on regardless (and wont be able to check foe the next few days)...


Signed-off-by: Yi Li <yi1.li@intel.com<mailto:yi1.li@intel.com>>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org<mailto:ardb%2Btianocore@kernel.org>>
Cc: Jiewen Yao <jiewen.yao@intel.com<mailto:jiewen.yao@intel.com>>
Cc: Jordan Justen <jordan.l.justen@intel.com<mailto:jordan.l.justen@intel.com>>
Cc: Gerd Hoffmann <kraxel@redhat.com<mailto:kraxel@redhat.com>>
---
 .../PlatformCI/.azurepipelines/Ubuntu-GCC5.yml  | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
index ad43f9fad2..5809152d26 100644
--- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
+++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml
@@ -109,13 +109,16 @@ jobs:
             Build.Target: "RELEASE"
             Run.Flags: $(run_flags)
             Run: $(should_run)
-          OVMF_IA32X64_FULL_NOOPT:
-            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
-            Build.Arch: "IA32,X64"
-            Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
-            Build.Target: "NOOPT"
-            Run.Flags: $(run_flags)
-            Run: $(should_run)
+          # This currently creates a very large image which is too big for the FDF declared range,
+          # skip this build for now.
+          #
+          # OVMF_IA32X64_FULL_NOOPT:
+          #   Build.File: "$(package)/PlatformCI/PlatformBuild.py"
+          #   Build.Arch: "IA32,X64"
+          #   Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1"
+          #   Build.Target: "NOOPT"
+          #   Run.Flags: $(run_flags)
+          #   Run: $(should_run)

           AMDSEV_X64_DEBUG:
             Build.File: "$(package)/PlatformCI/AmdSevBuild.py"
--
2.31.1.windows.1








-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106238): https://edk2.groups.io/g/devel/message/106238
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Gerd Hoffmann 10 months, 1 week ago
On Tue, Jun 20, 2023 at 07:11:39PM +0800, Li, Yi wrote:
> The effect of LTO is limited with optimization turned off, and blocked
> the upgrade of Openssl3.0. We already skipped this build with VS2019,
> skip the GCC NOOPT build also.
> 
> Signed-off-by: Yi Li <yi1.li@intel.com>
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>

Acked-by: Gerd Hoffmann <kraxel@redhat.com>



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106218): https://edk2.groups.io/g/devel/message/106218
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build
Posted by Yao, Jiewen 10 months, 1 week ago
Reviewed-by: Jiewen.yao@intel.com

________________________________
发件人: Gerd Hoffmann <kraxel@redhat.com>
发送时间: 星期二, 六月 20, 2023 10:41 下午
收件人: devel@edk2.groups.io <devel@edk2.groups.io>; Li, Yi1 <yi1.li@intel.com>
抄送: Ard Biesheuvel <ardb+tianocore@kernel.org>; Yao, Jiewen <jiewen.yao@intel.com>; Justen, Jordan L <jordan.l.justen@intel.com>
主题: Re: [edk2-devel] [PATCH] OvmfPkg/PlatformCI: Skip GCC5_OVMF_IA32X64_FULL_NOOPT build

On Tue, Jun 20, 2023 at 07:11:39PM +0800, Li, Yi wrote:
> The effect of LTO is limited with optimization turned off, and blocked
> the upgrade of Openssl3.0. We already skipped this build with VS2019,
> skip the GCC NOOPT build also.
>
> Signed-off-by: Yi Li <yi1.li@intel.com>
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>

Acked-by: Gerd Hoffmann <kraxel@redhat.com>



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106239): https://edk2.groups.io/g/devel/message/106239
Mute This Topic: https://groups.io/mt/99641869/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-