]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
lockdep: Fix upper limit for LOCKDEP_*_BITS configs
authorCarlos Llamas <cmllamas@google.com>
Thu, 24 Oct 2024 18:36:26 +0000 (18:36 +0000)
committerBoqun Feng <boqun.feng@gmail.com>
Sun, 15 Dec 2024 19:49:35 +0000 (11:49 -0800)
Lockdep has a set of configs used to determine the size of the static
arrays that it uses. However, the upper limit that was initially setup
for these configs is too high (30 bit shift). This equates to several
GiB of static memory for individual symbols. Using such high values
leads to linker errors:

  $ make defconfig
  $ ./scripts/config -e PROVE_LOCKING --set-val LOCKDEP_BITS 30
  $ make olddefconfig all
  [...]
  ld: kernel image bigger than KERNEL_IMAGE_SIZE
  ld: section .bss VMA wraps around address space

Adjust the upper limits to the maximum values that avoid these issues.
The need for anything more, likely points to a problem elsewhere. Note
that LOCKDEP_CHAINS_BITS was intentionally left out as its upper limit
had a different symptom and has already been fixed [1].

Reported-by: J. R. Okajima <hooanon05g@gmail.com>
Closes: https://lore.kernel.org/all/30795.1620913191@jrobl/ [1]
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Waiman Long <longman@redhat.com>
Cc: Will Deacon <will@kernel.org>
Acked-by: Waiman Long <longman@redhat.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Link: https://lore.kernel.org/r/20241024183631.643450-2-cmllamas@google.com
lib/Kconfig.debug

index 49a3819d4d7c25d974fa32fb1d079e8919c7b4e3..7635b36ba06085ff13e64e996c7d7bdff219ac77 100644 (file)
@@ -1504,7 +1504,7 @@ config LOCKDEP_SMALL
 config LOCKDEP_BITS
        int "Bitsize for MAX_LOCKDEP_ENTRIES"
        depends on LOCKDEP && !LOCKDEP_SMALL
-       range 10 30
+       range 10 24
        default 15
        help
          Try increasing this value if you hit "BUG: MAX_LOCKDEP_ENTRIES too low!" message.
@@ -1520,7 +1520,7 @@ config LOCKDEP_CHAINS_BITS
 config LOCKDEP_STACK_TRACE_BITS
        int "Bitsize for MAX_STACK_TRACE_ENTRIES"
        depends on LOCKDEP && !LOCKDEP_SMALL
-       range 10 30
+       range 10 26
        default 19
        help
          Try increasing this value if you hit "BUG: MAX_STACK_TRACE_ENTRIES too low!" message.
@@ -1528,7 +1528,7 @@ config LOCKDEP_STACK_TRACE_BITS
 config LOCKDEP_STACK_TRACE_HASH_BITS
        int "Bitsize for STACK_TRACE_HASH_SIZE"
        depends on LOCKDEP && !LOCKDEP_SMALL
-       range 10 30
+       range 10 26
        default 14
        help
          Try increasing this value if you need large STACK_TRACE_HASH_SIZE.
@@ -1536,7 +1536,7 @@ config LOCKDEP_STACK_TRACE_HASH_BITS
 config LOCKDEP_CIRCULAR_QUEUE_BITS
        int "Bitsize for elements in circular_queue struct"
        depends on LOCKDEP
-       range 10 30
+       range 10 26
        default 12
        help
          Try increasing this value if you hit "lockdep bfs error:-1" warning due to __cq_enqueue() failure.