Re: [RFC][PATCH V2] GCOV: profile by modules

From: Greg KH
Date: Wed May 20 2020 - 04:51:16 EST


On Wed, May 20, 2020 at 04:38:21PM +0800, gengcixi@xxxxxxxxx wrote:
> From: Cixi Geng <cixi.geng1@xxxxxxxxxx>
>
> ---
> Replace symbol GCOV_PROFILE_MODULES with GCOV_PROFILE_PREREQS
> ---
> The CONFIG_GCOV_PROFILE_ALL will compile kernel by profiling entire
> kernel which will lead to kernel run slower.Use GCOV_PROFILE_PREREQS
> to control part of the kernel modules to open gcov.
>
> Only add SERIAL_GCOV for an example.
>
> Signed-off-by: Cixi Geng <cixi.geng1@xxxxxxxxxx>
> ---
> drivers/tty/serial/Kconfig | 6 ++++++
> drivers/tty/serial/Makefile | 1 +
> kernel/gcov/Kconfig | 14 ++++++++++++++
> 3 files changed, 21 insertions(+)
>
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index adf9e80e7dc9..964df1a2989c 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1566,3 +1566,9 @@ endmenu
>
> config SERIAL_MCTRL_GPIO
> tristate
> +
> +config SERIAL_GCOV
> + bool "open gcov for serial"

What do you mean by "open"? And Kconfig entries are usually Upper Case" :)

> + depends on GCOV_PROFILE_PREREQS
> + help
> + Say Y here to enable gcov in serial.

I think we need more text here.


> diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
> index d056ee6cca33..7be1202286d2 100644
> --- a/drivers/tty/serial/Makefile
> +++ b/drivers/tty/serial/Makefile
> @@ -2,6 +2,7 @@
> #
> # Makefile for the kernel serial device drivers.
> #
> +GCOV_PROFILE := $(CONFIG_SERIAL_GCOV)
>
> obj-$(CONFIG_SERIAL_CORE) += serial_core.o
>
> diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig
> index 3941a9c48f83..91cc8f3c7c43 100644
> --- a/kernel/gcov/Kconfig
> +++ b/kernel/gcov/Kconfig
> @@ -51,6 +51,20 @@ config GCOV_PROFILE_ALL
> larger and run slower. Also be sure to exclude files from profiling
> which are not linked to the kernel image to prevent linker errors.
>
> +config GCOV_PROFILE_PREREQS
> + bool "Profile Kernel subsytem"
> + depends on !COMPILE_TEST
> + depends on GCOV_KERNEL
> + default n

default is always 'n', no need to list that

> + help
> + This options activates profiling for the specified kernel modules.
> +
> + If unsure, say N.
> +
> + When some modules need Gcov data, enable this config, then configure
> + with gcov on the corresponding modules configs.The directories or files

'. '?

> + of these modules will be added profiling flags after kernel compile.

The lines under "help" need to be indented more, right?

thanks,

greg k-h