All of lore.kernel.org
 help / color / mirror / Atom feed
From: Colin Ian King <colin.king@canonical.com>
To: Peter Oberparleiter <oberpar@linux.ibm.com>,
	Leon Romanovsky <leon@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Leon Romanovsky <leonro@nvidia.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH -rc v1] gcov: Disable gcov build with GCC 10
Date: Thu, 10 Sep 2020 20:19:52 +0100	[thread overview]
Message-ID: <4ef0af4b-869a-91e1-55b5-c67705625ab7@canonical.com> (raw)
In-Reply-To: <6fac3754-f8db-85f5-bdb1-b4c8e7ccc046@linux.ibm.com>

On 10/09/2020 13:52, Peter Oberparleiter wrote:
> On 04.09.2020 17:58, Leon Romanovsky wrote:
>> GCOV built with GCC 10 doesn't initialize n_function variable.
>> This produces different kernel panics as was seen by Colin in
>> Ubuntu [1] and me in FC 32 [2].
>>
>> As a workaround, let's disable GCOV build for broken GCC 10 version.
>>
>> [1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1891288
>> [2] https://lore.kernel.org/lkml/20200827133932.3338519-1-leon@kernel.org
>> Cc: Colin Ian King <colin.king@canonical.com>
>> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> 
> The following patch should fix the problem with gcov and GCC 10.
> I successfully tested it with kernel 5.9-rc4 on s390 using GCC 10.1.1
> and also with GCC 9.1.1 to see that it didn't break support for previous
> GCC versions. In both cases there were no kernel panics and gcov worked
> fine.
> 
> Could you try this patch to see if it also fixes the problem in your
> environment?
> 

This works perfectly, tested with gcc 10.2 on linux 5.9-rc4 (tip) on an
ARM64 Socionext Synquacer E-Series (Cortex A-53) system.

thanks!

Tested-and-Acked-by: Colin Ian King <colin.king@canonical.com>

> ---8<---
> From: Peter Oberparleiter <oberpar@linux.ibm.com>
> Subject: [PATCH] gcov: add support for GCC 10.1
> 
> Using gcov to collect coverage data for kernels compiled with GCC 10.1
> causes random malfunctions and kernel crashes. This is the result of a
> changed GCOV_COUNTERS value in GCC 10.1 that causes a mismatch between
> the layout of the gcov_info structure created by GCC profiling code and
> the related structure used by the kernel.
> 
> Fix this by updating the in-kernel GCOV_COUNTERS value. Also re-enable
> config GCOV_KERNEL for use with GCC 10.
> 
> Reported-by: Colin Ian King <colin.king@canonical.com>
> Reported-by: Leon Romanovsky <leonro@nvidia.com>
> Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
> ---
>  kernel/gcov/Kconfig   | 1 -
>  kernel/gcov/gcc_4_7.c | 4 +++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig
> index bb4b680e8455..3110c77230c7 100644
> --- a/kernel/gcov/Kconfig
> +++ b/kernel/gcov/Kconfig
> @@ -4,7 +4,6 @@ menu "GCOV-based kernel profiling"
>  config GCOV_KERNEL
>  	bool "Enable gcov-based kernel profiling"
>  	depends on DEBUG_FS
> -	depends on !CC_IS_GCC || GCC_VERSION < 100000
>  	select CONSTRUCTORS if !UML
>  	default n
>  	help
> diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c
> index 908fdf5098c3..53c67c87f141 100644
> --- a/kernel/gcov/gcc_4_7.c
> +++ b/kernel/gcov/gcc_4_7.c
> @@ -19,7 +19,9 @@
>  #include <linux/vmalloc.h>
>  #include "gcov.h"
> 
> -#if (__GNUC__ >= 7)
> +#if (__GNUC__ >= 10)
> +#define GCOV_COUNTERS			8
> +#elif (__GNUC__ >= 7)
>  #define GCOV_COUNTERS			9
>  #elif (__GNUC__ > 5) || (__GNUC__ == 5 && __GNUC_MINOR__ >= 1)
>  #define GCOV_COUNTERS			10
> 


      parent reply	other threads:[~2020-09-10 19:22 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-04 15:58 [PATCH -rc v1] gcov: Disable gcov build with GCC 10 Leon Romanovsky
2020-09-10 12:52 ` Peter Oberparleiter
2020-09-10 13:44   ` Leon Romanovsky
2020-09-10 19:18   ` Linus Torvalds
2020-09-10 21:49     ` David Laight
2020-09-11 15:23       ` Peter Oberparleiter
2020-09-11 15:06     ` Peter Oberparleiter
2020-09-10 19:19   ` Colin Ian King [this message]

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-all 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=4ef0af4b-869a-91e1-55b5-c67705625ab7@canonical.com \
    --to=colin.king@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=leon@kernel.org \
    --cc=leonro@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oberpar@linux.ibm.com \
    --cc=torvalds@linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.