Re: [PATCH] config: arm: exynos: remove PROVE_LOCKING from defconfig

From: Krzysztof Kozlowski
Date: Wed Oct 10 2018 - 05:19:13 EST


On Tue, 9 Oct 2018 at 17:34, Lukasz Luba <l.luba@xxxxxxxxxxxxxxxxxxx> wrote:
>
> PROVE_LOCKING enables LOCKDEP, which causes big overhead on cache and
> bus transactions.
>
> On some ARM big.LITTLE architecutres (Exynos 5433) the overhead is really big.
> The overhead can be measures using hackbench test which will speed up
> by x3 times (11sec -> 3.4sec).
> When you check transaction on cache or buses, the results are way higher
> than normal for the same hackbench test:
> L1d cache invalidations: 26mln vs 4mln
> L2u cache invalidations: 42mln vs 12mln
> bus cyc/access: 30cyc/access vs. 20cyc/access
> context switch is x3 times cheaper
>
> Enable this option only when you have some locking issue to investigate.
>
> Signed-off-by: Lukasz Luba <l.luba@xxxxxxxxxxxxxxxxxxx>
> ---
> arch/arm/configs/exynos_defconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig
> index 27ea6dfc..fbf52f3 100644
> --- a/arch/arm/configs/exynos_defconfig
> +++ b/arch/arm/configs/exynos_defconfig
> @@ -324,7 +324,6 @@ CONFIG_MAGIC_SYSRQ=y
> CONFIG_DEBUG_KERNEL=y
> CONFIG_SOFTLOCKUP_DETECTOR=y
> # CONFIG_DETECT_HUNG_TASK is not set
> -CONFIG_PROVE_LOCKING=y

You just disabled all debugging around locks (so also basic checks).
You did not describe this in the message... and it also makes me
wonder what were you testing? Kernel without any lock debugging (so
this patch) or kernel without lockdep only (not this patch).

As for the reason behind this change, I am not sure. We had locking
issues and this change really helped us to spot them. Most of the
issues are solved so maybe this is not needed anymore but on the other
hand - this is development/debugging config, not a distro-ready. It
might serve as a reference for distro configs but clearly it is not
for production.

Best regards,
Krzysztof

> CONFIG_DEBUG_ATOMIC_SLEEP=y
> CONFIG_DEBUG_USER=y
> CONFIG_CRYPTO_RSA=m
> --
> 2.7.4
>