[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171014072659.f2yr6mhm5ha3eou7@gmail.com>
Date: Sat, 14 Oct 2017 09:26:59 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Johan Hovold <johan@...nel.org>
Cc: Byungchul Park <byungchul.park@....com>,
Peter Zijlstra <peterz@...radead.org>,
linux-kernel@...r.kernel.org, tglx@...utronix.de,
linux-mm@...ck.org, kernel-team@....com,
Tony Lindgren <tony@...mide.com>,
Arnd Bergmann <arnd@...db.de>, linux-omap@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: Dramatic lockdep slowdown in 4.14
* Johan Hovold <johan@...nel.org> wrote:
> Hi,
>
> I had noticed that the BeagleBone Black boot time appeared to have
> increased significantly with 4.14 and yesterday I finally had time to
> investigate it.
>
> Boot time (from "Linux version" to login prompt) had in fact doubled
> since 4.13 where it took 17 seconds (with my current config) compared to
> the 35 seconds I now see with 4.14-rc4.
>
> I quick bisect pointed to lockdep and specifically the following commit:
>
> 28a903f63ec0 ("locking/lockdep: Handle non(or multi)-acquisition
> of a crosslock")
>
> which I've verified is the commit which doubled the boot time (compared
> to 28a903f63ec0^) (added by lockdep crossrelease series [1]).
>
> I also verified that simply disabling CONFIG_PROVE_LOCKING on 4.14-rc4
> brought boot time down to about 14 seconds.
>
> Now since it's lockdep I guess this can't really be considered a
> regression if these changes did improve lockdep correctness, but still,
> this dramatic slow down essentially forces me to disable PROVE_LOCKING
> by default on this system.
>
> Is this lockdep slowdown expected and desirable?
It's not desirable at all.
Does the patch below fix the regression for you - or does the introduction and
handling of ->nr_acquire hurt as well?
Thanks,
Ingo
====================>
lib/Kconfig.debug | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index c6401d325b0e..f5b40c1668ea 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1138,8 +1138,8 @@ config PROVE_LOCKING
select DEBUG_MUTEXES
select DEBUG_RT_MUTEXES if RT_MUTEXES
select DEBUG_LOCK_ALLOC
- select LOCKDEP_CROSSRELEASE
- select LOCKDEP_COMPLETIONS
+# select LOCKDEP_CROSSRELEASE
+# select LOCKDEP_COMPLETIONS
select TRACE_IRQFLAGS
default n
help
Powered by blists - more mailing lists