Hi Longman,
Thanks for looking into this!
On 2025/5/27 12:48, Waiman Long wrote:
On 5/26/25 10:02 PM, Lance Yang wrote:
From: Lance Yang <lance.yang@xxxxxxxxx>
Hi all,
With CONFIG_LOCKDEP on, I got this warning during kernel builds:
[Tue May 27 00:22:59 2025] BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low!
[...]
$ cat .config|grep CONFIG_LOCKDEP
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_LOCKDEP=y
CONFIG_LOCKDEP_BITS=15
CONFIG_LOCKDEP_CHAINS_BITS=16
CONFIG_LOCKDEP_STACK_TRACE_BITS=19
CONFIG_LOCKDEP_STACK_TRACE_HASH_BITS=14
CONFIG_LOCKDEP_CIRCULAR_QUEUE_BITS=12
Is it safe? Or could this be a real locking issue?
The lock chains store the locking order of nested locks. The default value of 16 may be too low now as the kernel is becoming more complex in term of possible nested locking orders. Anyway, I would suggest upping the CONFIG_LOCKDEP_CHAIN_BITS to 17 or even 18 to prevent this kind of problem. In fact, the latest RHEL debug kernel sets CONFIG_LOCKDEP_CHAINS_BITS to 18.
Yes, makes sense to me. Bumping it to 18 sounds reasonable as the kernel
is getting more complex in terms of possible nested locking orders. It
uses a bit more memory, but keeping LOCKDEP working is worth it ;)
And if there are no objections, I’d be happy to send a patch making the
change.