diff mbox series

[for-4.20] automation/gitlab: disable coverage from clang randconfig

Message ID 20250114174345.60887-1-roger.pau@citrix.com (mailing list archive)
State New
Headers show
Series [for-4.20] automation/gitlab: disable coverage from clang randconfig | expand

Commit Message

Roger Pau Monné Jan. 14, 2025, 5:43 p.m. UTC
If randconfig enables coverage support the build times out due to GNU LD
taking too long.  For the time being prevent coverage from being enabled in
clang randconfig job.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
I will fix the orphaned section stuff separately, as I'm considering just
removing LLVM coverage support because the llvm coverage format is not
stable, and the code to dump it has already become stale.  However I need
to think about it, and in the short term disabling coverage support from
randconfig is more straightforward.
---
 automation/gitlab-ci/build.yaml | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andrew Cooper Jan. 14, 2025, 5:48 p.m. UTC | #1
On 14/01/2025 5:43 pm, Roger Pau Monne wrote:
> If randconfig enables coverage support the build times out due to GNU LD
> taking too long.  For the time being prevent coverage from being enabled in
> clang randconfig job.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> I will fix the orphaned section stuff separately, as I'm considering just
> removing LLVM coverage support because the llvm coverage format is not
> stable, and the code to dump it has already become stale.  However I need
> to think about it, and in the short term disabling coverage support from
> randconfig is more straightforward.

Oh, so it's broken too?  Unless the fix is trivial, we should have a
Kconfig level disable on it.  No point letting people turn on something
that's broken.

~Andrew
Stefano Stabellini Jan. 14, 2025, 11:49 p.m. UTC | #2
On Tue, 14 Jan 2025, Andrew Cooper wrote:
> On 14/01/2025 5:43 pm, Roger Pau Monne wrote:
> > If randconfig enables coverage support the build times out due to GNU LD
> > taking too long.  For the time being prevent coverage from being enabled in
> > clang randconfig job.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Roger Pau Monné Jan. 15, 2025, 8:17 a.m. UTC | #3
On Tue, Jan 14, 2025 at 05:48:20PM +0000, Andrew Cooper wrote:
> On 14/01/2025 5:43 pm, Roger Pau Monne wrote:
> > If randconfig enables coverage support the build times out due to GNU LD
> > taking too long.  For the time being prevent coverage from being enabled in
> > clang randconfig job.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

> > ---
> > Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > I will fix the orphaned section stuff separately, as I'm considering just
> > removing LLVM coverage support because the llvm coverage format is not
> > stable, and the code to dump it has already become stale.  However I need
> > to think about it, and in the short term disabling coverage support from
> > randconfig is more straightforward.
> 
> Oh, so it's broken too?  Unless the fix is trivial, we should have a
> Kconfig level disable on it.  No point letting people turn on something
> that's broken.

It's not build time broken, but the format of the buffer that we
return in llvm.c dump() function has gotten out of sync with the
native format in modern clang versions, and hence coverage tools will
refuse to parse it.

I think newer versions of llvm/clang have now included an internal
function to dump the buffer, so that we no longer have to attempt to
generate it from Xen, I need to see whether that works.  Otherwise the
only remaining option is to convert the llvm data into gcov format
(which is stable), IIRC this is what Linux did.

Thanks, Roger.
Jan Beulich Jan. 15, 2025, 8:19 a.m. UTC | #4
On 14.01.2025 18:43, Roger Pau Monne wrote:
> If randconfig enables coverage support the build times out due to GNU LD
> taking too long.  For the time being prevent coverage from being enabled in
> clang randconfig job.

Just curious: How long is "too long" in this case?

Jan
Andrew Cooper Jan. 15, 2025, 8:34 a.m. UTC | #5
On 15/01/2025 8:19 am, Jan Beulich wrote:
> On 14.01.2025 18:43, Roger Pau Monne wrote:
>> If randconfig enables coverage support the build times out due to GNU LD
>> taking too long.  For the time being prevent coverage from being enabled in
>> clang randconfig job.
> Just curious: How long is "too long" in this case?

Timeout is currently at 1h, for what is a single build of the hypervisor.

~Andrew
Roger Pau Monné Jan. 15, 2025, 8:56 a.m. UTC | #6
On Wed, Jan 15, 2025 at 09:19:29AM +0100, Jan Beulich wrote:
> On 14.01.2025 18:43, Roger Pau Monne wrote:
> > If randconfig enables coverage support the build times out due to GNU LD
> > taking too long.  For the time being prevent coverage from being enabled in
> > clang randconfig job.
> 
> Just curious: How long is "too long" in this case?

Left it for >30min stuck on the final linker invocation IIRC and it
hadn't finished, so no idea really.  This was also running on a docker
x86-64 container on my ARM mac, so there was an extra layer of
emulation.

Thanks, Roger.
Oleksii Kurochko Jan. 15, 2025, 9:35 a.m. UTC | #7
On 1/14/25 6:43 PM, Roger Pau Monne wrote:
> If randconfig enables coverage support the build times out due to GNU LD
> taking too long.  For the time being prevent coverage from being enabled in
> clang randconfig job.
>
> Signed-off-by: Roger Pau Monné<roger.pau@citrix.com>

R-Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

> ---
> Cc: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> ---
> I will fix the orphaned section stuff separately, as I'm considering just
> removing LLVM coverage support because the llvm coverage format is not
> stable, and the code to dump it has already become stale.  However I need
> to think about it, and in the short term disabling coverage support from
> randconfig is more straightforward.
> ---
>   automation/gitlab-ci/build.yaml | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index cb84f379b754..bc4a8a5ad20c 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -556,6 +556,8 @@ debian-12-x86_64-clang-randconfig:
>     variables:
>       CONTAINER: debian:12-x86_64
>       RANDCONFIG: y
> +    EXTRA_FIXED_RANDCONFIG: |
> +      CONFIG_COVERAGE=n # Disable coverage otherwise build times out.
>   
>   debian-12-x86_64-gcc:
>     extends: .gcc-x86-64-build
diff mbox series

Patch

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index cb84f379b754..bc4a8a5ad20c 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -556,6 +556,8 @@  debian-12-x86_64-clang-randconfig:
   variables:
     CONTAINER: debian:12-x86_64
     RANDCONFIG: y
+    EXTRA_FIXED_RANDCONFIG: |
+      CONFIG_COVERAGE=n # Disable coverage otherwise build times out.
 
 debian-12-x86_64-gcc:
   extends: .gcc-x86-64-build