lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 11 Jul 2022 12:58:40 +0200
From:   Sascha Hauer <sha@...gutronix.de>
To:     Steven Rostedt <rostedt@...dmis.org>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        Ingo Molnar <mingo@...nel.org>,
        Andrew Morton <akpm@...ux-foundation.org>,
        linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH] ftrace: Be more specific about arch impact when function
 tracer is enabled

On Wed, Jul 06, 2022 at 04:12:31PM -0400, Steven Rostedt wrote:
> From: Steven Rostedt (Google) <rostedt@...dmis.org>
> 
> It was brought up that on ARMv7, that because the FUNCTION_TRACER does not
> use nops to keep function tracing disabled because of the use of a link
> register, it does have some performance impact.
> 
> The start of functions when -pg is used to compile the kernel is:
> 
> 	push    {lr}
> 	bl      8010e7c0 <__gnu_mcount_nc>
> 
> When function tracing is tuned off, it becomes:
> 
> 	push    {lr}
> 	add   sp, sp, #4
> 
> Which just puts the stack back to its normal location. But these two
> instructions at the start of every function does incur some overhead.
> 
> Be more honest in the Kconfig FUNCTION_TRACER description and specify that
> the overhead being in the noise was x86 specific, but other architectures
> may vary.
> 
> Link: https://lore.kernel.org/all/20220705105416.GE5208@pengutronix.de/
> 
> Reported-by: Sascha Hauer <sha@...gutronix.de>
> Signed-off-by: Steven Rostedt (Google) <rostedt@...dmis.org>
> ---

Thanks Steven

Acked-by: Sascha Hauer <s.hauer@...gutronix.de>

Sascha

> diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> index debbbb083286..ccd6a5ade3e9 100644
> --- a/kernel/trace/Kconfig
> +++ b/kernel/trace/Kconfig
> @@ -194,7 +194,8 @@ config FUNCTION_TRACER
>  	  sequence is then dynamically patched into a tracer call when
>  	  tracing is enabled by the administrator. If it's runtime disabled
>  	  (the bootup default), then the overhead of the instructions is very
> -	  small and not measurable even in micro-benchmarks.
> +	  small and not measurable even in micro-benchmarks (at least on
> +	  x86, but may have impact on other architectures).
>  
>  config FUNCTION_GRAPH_TRACER
>  	bool "Kernel Function Graph Tracer"
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ