Skip to contentSkip to conversation

Dramatic lockdep slowdown in 4.14

DISCUSSION Johan Hovold 6 participants 14 messages Oct 13, 2017 – Oct 18, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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?

Johan

[1] https://lkml.kernel.org/r/1502089981-21272-1-git-send-email-byungchul.park at lge.com

#1 lore raw
Quoted 21 lines · Johan Hovold

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.

Quoted 6 lines

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?

Expected yes, desirable not so much. Its the save_stack_trace() in add_xhlock() (IIRC).

I've not yet had time to figure out what to do about that.

#2 lore raw
Quoted 27 lines · Peter Zijlstra
Quoted 26 lines · Johan Hovold

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.

Quoted 6 lines
Quoted 1 line

Is this lockdep slowdown expected and desirable?

Expected yes, desirable not so much. Its the save_stack_trace() in add_xhlock() (IIRC).

I've not yet had time to figure out what to do about that.

Thanks for confirming. Do you think it makes sense to track this as a 4.14 regression to avoid having others spend time on tracking this down meanwhile? (Adding Thorsten on CC.)

Johan

#3 lore raw
In reply to Johan Hovold
Quoted 21 lines · Johan Hovold

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.

Quoted 6 lines

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(-)
lib/Kconfig.debug +2 -2
index c6401d325b0e..f5b40c1668ea 100644
@@ -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
#4 lore raw
Quoted 36 lines · Ingo Molnar
Quoted 21 lines · Johan Hovold

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.

Quoted 6 lines

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?

lib/Kconfig.debug config PROVE_LOCKING · line 1142

Quoted 4 lines
lib/Kconfig.debug +2 -2
-	select LOCKDEP_CROSSRELEASE
-	select LOCKDEP_COMPLETIONS
+#	select LOCKDEP_CROSSRELEASE
+#	select LOCKDEP_COMPLETIONS

Disabling these options this way gives me a about boot time of 17 seconds again, so yes, that fixes the problem.

Thanks,
Johan

#5 lore raw

[tip:locking/urgent] locking/lockdep: Disable cross-release features for now

In reply to Ingo Molnar
locking/lockdep: Disable cross-release features for now
Commit-ID:  b483cf3bc249d7af706390efa63d6671e80d1c09
Gitweb:     https://git.kernel.org/tip/b483cf3bc249d7af706390efa63d6671e80d1c09
Author:     Ingo Molnar <[email protected]>
AuthorDate: Sat, 14 Oct 2017 09:26:59 +0200
Committer:  Ingo Molnar <[email protected]>
CommitDate: Sat, 14 Oct 2017 12:50:26 +0200

locking/lockdep: Disable cross-release features for now

Johan Hovold reported a big lockdep slowdown on his system, caused by lockdep:

Quoted 11 lines

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")

Because the final v4.14 release is close, disable the cross-release lockdep features for now.

---
 lib/Kconfig.debug | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
lib/Kconfig.debug +2 -2
index 2689b7c..e270584 100644
@@ -1092,8 +1092,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 if BROKEN
+	select LOCKDEP_COMPLETIONS if BROKEN
 	select TRACE_IRQFLAGS
 	default n
 	help
#6 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

Quoted 50 lines · tip-bot for Ingo Molnar
Commit-ID:  b483cf3bc249d7af706390efa63d6671e80d1c09
Gitweb:     https://git.kernel.org/tip/b483cf3bc249d7af706390efa63d6671e80d1c09
Author:     Ingo Molnar <[email protected]>
AuthorDate: Sat, 14 Oct 2017 09:26:59 +0200
Committer:  Ingo Molnar <[email protected]>
CommitDate: Sat, 14 Oct 2017 12:50:26 +0200

locking/lockdep: Disable cross-release features for now

Johan Hovold reported a big lockdep slowdown on his system, caused by lockdep:

Quoted 11 lines

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")

Because the final v4.14 release is close, disable the cross-release lockdep features for now.

---
 lib/Kconfig.debug | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
lib/Kconfig.debug +0 -0
index 2689b7c..e270584 100644

lib/Kconfig.debug config PROVE_LOCKING · line 1096

Quoted 7 lines
lib/Kconfig.debug +2 -2
@@ -1092,8 +1092,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 if BROKEN
+	select LOCKDEP_COMPLETIONS if BROKEN

I agree with disabling crossrelease as default, becasue of regression, as I originally did.

However, it's expected to spend more time once it's enabled. Is the following acceptable?

----->8-----

Quoted 1 line

From d796b36bbed5783a22879d745e4d332bb02697a5 Mon Sep 17 00:00:00 2001

From: Byungchul Park <[email protected]>
Date: Mon, 16 Oct 2017 10:54:20 +0900
Subject: [PATCH] lockdep: Diable LOCKDEP_CROSSRELEASE as default

Lockdep slowdeon has been reported becasue of LOCKDEP_CROSSRELEASE. The feature needs more time to work, but it's not desirable as default. So disable the Kconfig as default.

---
 lib/Kconfig.debug | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
lib/Kconfig.debug +6 -4
index 3db9167..fa45f78 100644
@@ -1138,8 +1138,6 @@ config PROVE_LOCKING
 	select DEBUG_MUTEXES
 	select DEBUG_RT_MUTEXES if RT_MUTEXES
 	select DEBUG_LOCK_ALLOC
-	select LOCKDEP_CROSSRELEASE if BROKEN
-	select LOCKDEP_COMPLETIONS if BROKEN
 	select TRACE_IRQFLAGS
 	default n
 	help
@@ -1210,7 +1208,9 @@ config LOCK_STAT
 	 (CONFIG_LOCKDEP defines "acquire" and "release" events.)
 
 config LOCKDEP_CROSSRELEASE
-	bool
+	bool "Lock debugging: enable cross-locking checks in lockdep"
+	depends on PROVE_LOCKING
+	default n
 	help
 	 This makes lockdep work for crosslock which is a lock allowed to
 	 be released in a different context from the acquisition context.
@@ -1220,7 +1220,9 @@ config LOCKDEP_CROSSRELEASE
 	 detector, lockdep.
 
 config LOCKDEP_COMPLETIONS
-	bool
+	bool "Lock debugging: allow completions to use deadlock detector"
+	depends on LOCKDEP_CROSSRELEASE
+	default n
 	help
 	 A deadlock caused by wait_for_completion() and complete() can be
 	 detected by lockdep using crossrelease feature.
Signature · 1 line
1.9.1
#7 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

Quoted 62 lines · Byungchul Park
Quoted 50 lines · tip-bot for Ingo Molnar
Commit-ID:  b483cf3bc249d7af706390efa63d6671e80d1c09
Gitweb:     https://git.kernel.org/tip/b483cf3bc249d7af706390efa63d6671e80d1c09
Author:     Ingo Molnar <[email protected]>
AuthorDate: Sat, 14 Oct 2017 09:26:59 +0200
Committer:  Ingo Molnar <[email protected]>
CommitDate: Sat, 14 Oct 2017 12:50:26 +0200

locking/lockdep: Disable cross-release features for now

Johan Hovold reported a big lockdep slowdown on his system, caused by lockdep:

Quoted 11 lines

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")

Because the final v4.14 release is close, disable the cross-release lockdep features for now.

---
 lib/Kconfig.debug | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
lib/Kconfig.debug +0 -0
index 2689b7c..e270584 100644

lib/Kconfig.debug config PROVE_LOCKING · line 1096

Quoted 7 lines
lib/Kconfig.debug +2 -2
@@ -1092,8 +1092,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 if BROKEN
+	select LOCKDEP_COMPLETIONS if BROKEN

I agree with disabling crossrelease as default, becasue of regression, as I originally did.

Quoted 2 lines

However, it's expected to spend more time once it's enabled. Is the following acceptable?

No, please fix performance.

Thanks,

Ingo

#8 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

Quoted 17 lines · Ingo Molnar
Quoted 16 lines · Byungchul Park

lib/Kconfig.debug config PROVE_LOCKING · line 1096

Quoted 12 lines
lib/Kconfig.debug +2 -2
index 2689b7c..e270584 100644
@@ -1092,8 +1092,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 if BROKEN
+	select LOCKDEP_COMPLETIONS if BROKEN

I agree with disabling crossrelease as default, becasue of regression, as I originally did.

Quoted 4 lines
Quoted 2 lines

However, it's expected to spend more time once it's enabled. Is the following acceptable?

No, please fix performance.

You know very well that with the cross release stuff we have to take the performance hit of stack unwinding because we have no idea whether there will show up a new lock relation later or not. And there is not much you can do in that respect.

OTOH, the cross release feature unearthed real deadlocks already so it is a valuable debug feature and having an explicit config switch which defaults to N is well worth it.

Thanks,

tglx

#9 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

Quoted 23 lines · Thomas Gleixner
Quoted 17 lines · Ingo Molnar
Quoted 16 lines · Byungchul Park

lib/Kconfig.debug config PROVE_LOCKING · line 1096

Quoted 12 lines
lib/Kconfig.debug +2 -2
index 2689b7c..e270584 100644
@@ -1092,8 +1092,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 if BROKEN
+	select LOCKDEP_COMPLETIONS if BROKEN

I agree with disabling crossrelease as default, becasue of regression, as I originally did.

Quoted 4 lines
Quoted 2 lines

However, it's expected to spend more time once it's enabled. Is the following acceptable?

No, please fix performance.

Quoted 8 lines

You know very well that with the cross release stuff we have to take the performance hit of stack unwinding because we have no idea whether there will show up a new lock relation later or not. And there is not much you can do in that respect.

OTOH, the cross release feature unearthed real deadlocks already so it is a valuable debug feature and having an explicit config switch which defaults to N is well worth it.

I disagree, because even if that's correct, the choices are not binary. The performance regression was a slowdown of around 7x: lockdep boot overhead on that particula system went from +3 seconds to +21 seconds...

As a response to the performance regression I haven't seen _any_ attempt to measure, profile and generally quantify the performance impact, which would at least make it more believable that the overhead cannot be reduced. That really makes me worry about the code on a higher level than just whether it can be enabled by default or not.

Caring about the performance of debug features very much matters, _especially_ when they are expensive.

Thanks,

Ingo

#10 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

Quoted 9 lines · Ingo Molnar
Quoted 8 lines · Thomas Gleixner
Quoted 1 line · Ingo Molnar

No, please fix performance.

You know very well that with the cross release stuff we have to take the performance hit of stack unwinding because we have no idea whether there will show up a new lock relation later or not. And there is not much you can do in that respect.

Quoted 7 lines
Quoted 3 lines

OTOH, the cross release feature unearthed real deadlocks already so it is a valuable debug feature and having an explicit config switch which defaults to N is well worth it.

I disagree, because even if that's correct, the choices are not binary. The performance regression was a slowdown of around 7x: lockdep boot overhead on that particula system went from +3 seconds to +21 seconds...

Hmm, I might have missed something, but what I've seen in this thread is:

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

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.

So that's 2x not 7x. On one of my main test machines it's about ~1.4 so I did not even really notice until this thread came up. Probably I have no expectations on boot time and performance when lockdep is on :)

Quoted 5 lines

As a response to the performance regression I haven't seen _any_ attempt to measure, profile and generally quantify the performance impact, which would at least make it more believable that the overhead cannot be reduced. That really makes me worry about the code on a higher level than just whether it can be enabled by default or not.

I did some quick perf top analysis, not in detail though, and what really dominates with that feature is the unwinder, which needs to be unconditional due to the nature of the problem.

I have not spend a huge amount of time to think about ways to improve that, but I could not come up with anything smart so far.

The only thing I thought about was making the unwind short and only record one or two call levels (if at all) instead of following the full call chain. That makes it less useful for a quick test, but once you hit a splat you can enable full depth recording for full analysis. In the full analysis case performance is the least of your worries.

Quoted 2 lines

Caring about the performance of debug features very much matters, _especially_ when they are expensive.

I'm not disagreeing. I'm just trying to understand why this is marked BROKEN where I think it should be marked TOO_EXPENSIVE.

Thanks,

tglx

#11 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

Quoted 18 lines · Thomas Gleixner
Quoted 9 lines · Ingo Molnar
Quoted 8 lines · Thomas Gleixner
Quoted 1 line · Ingo Molnar

No, please fix performance.

You know very well that with the cross release stuff we have to take the performance hit of stack unwinding because we have no idea whether there will show up a new lock relation later or not. And there is not much you can do in that respect.

Quoted 7 lines
Quoted 3 lines

OTOH, the cross release feature unearthed real deadlocks already so it is a valuable debug feature and having an explicit config switch which defaults to N is well worth it.

I disagree, because even if that's correct, the choices are not binary. The performance regression was a slowdown of around 7x: lockdep boot overhead on that particula system went from +3 seconds to +21 seconds...

Quoted 7 lines

Hmm, I might have missed something, but what I've seen in this thread is:

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

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.

So that's 2x not 7x. [...]

Yeah, so what you missed I think is that the no-lockdep bootup time is 14 seconds. So we have:

   vanilla:                        14 secs
   lockdep:                        17 secs (+3 secs)
   lockdep+crossrelease:           35 secs (+21 secs)

So lockdep overhead got 7x worse on this system.

Thanks,

Ingo

#12 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

In reply to Thomas Gleixner
Quoted 38 lines · Thomas Gleixner
Quoted 9 lines · Ingo Molnar
Quoted 8 lines · Thomas Gleixner
Quoted 1 line · Ingo Molnar

No, please fix performance.

You know very well that with the cross release stuff we have to take the performance hit of stack unwinding because we have no idea whether there will show up a new lock relation later or not. And there is not much you can do in that respect.

Quoted 7 lines
Quoted 3 lines

OTOH, the cross release feature unearthed real deadlocks already so it is a valuable debug feature and having an explicit config switch which defaults to N is well worth it.

I disagree, because even if that's correct, the choices are not binary. The performance regression was a slowdown of around 7x: lockdep boot overhead on that particula system went from +3 seconds to +21 seconds...

Hmm, I might have missed something, but what I've seen in this thread is:

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

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.

So that's 2x not 7x. On one of my main test machines it's about ~1.4 so I did not even really notice until this thread came up. Probably I have no expectations on boot time and performance when lockdep is on :)

Quoted 5 lines

As a response to the performance regression I haven't seen _any_ attempt to measure, profile and generally quantify the performance impact, which would at least make it more believable that the overhead cannot be reduced. That really makes me worry about the code on a higher level than just whether it can be enabled by default or not.

I did some quick perf top analysis, not in detail though, and what really dominates with that feature is the unwinder, which needs to be unconditional due to the nature of the problem.

Quoted 5 lines

I have not spend a huge amount of time to think about ways to improve that, but I could not come up with anything smart so far.

The only thing I thought about was making the unwind short and only record one or two call levels (if at all) instead of following the full call

Yes, I think that's the best option I can do.

Thank you very much.

Quoted 13 lines

chain. That makes it less useful for a quick test, but once you hit a splat you can enable full depth recording for full analysis. In the full analysis case performance is the least of your worries.

Quoted 2 lines

Caring about the performance of debug features very much matters, _especially_ when they are expensive.

I'm not disagreeing. I'm just trying to understand why this is marked BROKEN where I think it should be marked TOO_EXPENSIVE.

Thanks,

tglx

#13 lore raw

Re: [tip:locking/urgent] locking/lockdep: Disable cross-release features for now

In reply to Ingo Molnar
Quoted 16 lines · Ingo Molnar
Quoted 16 lines

lib/Kconfig.debug config PROVE_LOCKING · line 1096

Quoted 12 lines
lib/Kconfig.debug +2 -2
index 2689b7c..e270584 100644
@@ -1092,8 +1092,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 if BROKEN
+	select LOCKDEP_COMPLETIONS if BROKEN

I agree with disabling crossrelease as default, becasue of regression, as I originally did.

Quoted 4 lines
Quoted 2 lines

However, it's expected to spend more time once it's enabled. Is the following acceptable?

No, please fix performance.

OK. I will fx the performance problem by making the unwinding optional.