[jimc:folio-pool-v2-lockdep 14/21] kernel/locking/lockdep.c:6776:2: error: use of undeclared identifier 'bootstrap_stack_trace'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://github.com/jimc/linux.git folio-pool-v2-lockdep
head:   e77ee8289ea0755b0ee299348504d4568f942d71
commit: 198cb0234063750d4125d2f5b3fd29f373fba200 [14/21] locking/lockdep: Migrate and compact stack trace entries into folio_scratchpad
config: powerpc64-randconfig-001-20260818 (https://download.01.org/0day-ci/archive/20260819/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 844a18e753e822736c9805ab779144b647a2c186)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260819/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

>> kernel/locking/lockdep.c:6776:2: error: use of undeclared identifier 'bootstrap_stack_trace'
    6776 |         bootstrap_stack_trace = early_stack_trace;
         |         ^~~~~~~~~~~~~~~~~~~~~
>> kernel/locking/lockdep.c:6776:26: error: use of undeclared identifier 'early_stack_trace'
    6776 |         bootstrap_stack_trace = early_stack_trace;
         |                                 ^~~~~~~~~~~~~~~~~
>> kernel/locking/lockdep.c:6777:2: error: use of undeclared identifier 'bootstrap_stack_trace_in_use'; did you mean 'bootstrap_entries_in_use'?
    6777 |         bootstrap_stack_trace_in_use = &early_stack_trace_in_use;
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |         bootstrap_entries_in_use
   kernel/locking/lockdep.c:237:23: note: 'bootstrap_entries_in_use' declared here
     237 | static unsigned long *bootstrap_entries_in_use __read_mostly = early_list_entries_in_use;
         |                       ^
>> kernel/locking/lockdep.c:6777:34: error: use of undeclared identifier 'early_stack_trace_in_use'
    6777 |         bootstrap_stack_trace_in_use = &early_stack_trace_in_use;
         |                                         ^~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/lockdep.c:6821:3: error: use of undeclared identifier 'early_stack_trace_in_use'
    6821 |                 early_stack_trace_in_use,
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/locking/lockdep.c:6822:18: error: use of undeclared identifier 'BOOTSTRAP_STACK_TRACE_ENTRIES'
    6822 |                 (unsigned long)BOOTSTRAP_STACK_TRACE_ENTRIES);
         |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/locking/lockdep.c:6844:26: error: use of undeclared identifier 'lockdep_trace_scratchpad'; did you mean 'lockdep_trace_stats'?
    6844 |         folio_scratchpad_alloc(&lockdep_trace_scratchpad, sizeof(struct lock_trace) + 32 * sizeof(unsigned long),
         |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
         |                                 lockdep_trace_stats
   kernel/locking/lockdep_internals.h:163:6: note: 'lockdep_trace_stats' declared here
     163 | void lockdep_trace_stats(unsigned int *nr_chunks, size_t *chunk_size, size_t *tail_used);
         |      ^
   kernel/locking/lockdep.c:6844:52: error: invalid application of 'sizeof' to an incomplete type 'struct lock_trace'
    6844 |         folio_scratchpad_alloc(&lockdep_trace_scratchpad, sizeof(struct lock_trace) + 32 * sizeof(unsigned long),
         |                                                           ^     ~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep_types.h:85:8: note: forward declaration of 'struct lock_trace'
      85 | struct lock_trace;
         |        ^
   kernel/locking/lockdep.c:6854:29: error: use of undeclared identifier 'stack_trace_hash'; did you mean 'stack_trace_save'?
    6854 |         for (i = 0; i < ARRAY_SIZE(stack_trace_hash); i++) {
         |                                    ^~~~~~~~~~~~~~~~
         |                                    stack_trace_save
   include/linux/array_size.h:11:33: note: expanded from macro 'ARRAY_SIZE'
      11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
         |                                 ^~~
   include/linux/stacktrace.h:70:14: note: 'stack_trace_save' declared here
      70 | unsigned int stack_trace_save(unsigned long *store, unsigned int size,
         |              ^
   kernel/locking/lockdep.c:6854:29: error: use of undeclared identifier 'stack_trace_hash'; did you mean 'stack_trace_save'?
    6854 |         for (i = 0; i < ARRAY_SIZE(stack_trace_hash); i++) {
         |                                    ^~~~~~~~~~~~~~~~
         |                                    stack_trace_save
   include/linux/array_size.h:11:48: note: expanded from macro 'ARRAY_SIZE'
      11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
         |                                                ^~~
   include/linux/stacktrace.h:70:14: note: 'stack_trace_save' declared here
      70 | unsigned int stack_trace_save(unsigned long *store, unsigned int size,
         |              ^
   kernel/locking/lockdep.c:6854:18: error: subscript of pointer to function type 'unsigned int (unsigned long *, unsigned int, unsigned int)'
    6854 |         for (i = 0; i < ARRAY_SIZE(stack_trace_hash); i++) {
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/array_size.h:11:47: note: expanded from macro 'ARRAY_SIZE'
      11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
         |                                               ^~~~~
   kernel/locking/lockdep.c:6854:29: error: use of undeclared identifier 'stack_trace_hash'; did you mean 'stack_trace_save'?
    6854 |         for (i = 0; i < ARRAY_SIZE(stack_trace_hash); i++) {
         |                                    ^~~~~~~~~~~~~~~~
         |                                    stack_trace_save
   include/linux/array_size.h:11:75: note: expanded from macro 'ARRAY_SIZE'
      11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
         |                                                                           ^~~
   include/linux/compiler.h:205:64: note: expanded from macro '__must_be_array'
     205 | #define __must_be_array(a)      __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \
         |                                                                     ^
   include/linux/compiler.h:204:39: note: expanded from macro '__is_array'
     204 | #define __is_array(a)           (!__same_type((a), &(a)[0]))
         |                                                ^
   include/linux/compiler_types.h:610:63: note: expanded from macro '__same_type'
     610 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
         |                                                               ^
   include/linux/compiler.h:200:84: note: expanded from macro '__BUILD_BUG_ON_ZERO_MSG'
     200 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg, ...) ((int)sizeof(struct {_Static_assert(!(e), msg);}))
         |                                                                                    ^
   include/linux/stacktrace.h:70:14: note: 'stack_trace_save' declared here
      70 | unsigned int stack_trace_save(unsigned long *store, unsigned int size,
         |              ^
   kernel/locking/lockdep.c:6854:29: error: use of undeclared identifier 'stack_trace_hash'; did you mean 'stack_trace_save'?
    6854 |         for (i = 0; i < ARRAY_SIZE(stack_trace_hash); i++) {
         |                                    ^~~~~~~~~~~~~~~~
         |                                    stack_trace_save
   include/linux/array_size.h:11:75: note: expanded from macro 'ARRAY_SIZE'
      11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
         |                                                                           ^~~
   include/linux/compiler.h:205:64: note: expanded from macro '__must_be_array'
     205 | #define __must_be_array(a)      __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \
         |                                                                     ^
   include/linux/compiler.h:204:45: note: expanded from macro '__is_array'
     204 | #define __is_array(a)           (!__same_type((a), &(a)[0]))
         |                                                      ^
   include/linux/compiler_types.h:610:74: note: expanded from macro '__same_type'
     610 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
         |                                                                          ^
   include/linux/compiler.h:200:84: note: expanded from macro '__BUILD_BUG_ON_ZERO_MSG'
     200 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg, ...) ((int)sizeof(struct {_Static_assert(!(e), msg);}))
         |                                                                                    ^
   include/linux/stacktrace.h:70:14: note: 'stack_trace_save' declared here
      70 | unsigned int stack_trace_save(unsigned long *store, unsigned int size,
         |              ^
   kernel/locking/lockdep.c:6854:18: error: subscript of pointer to function type 'unsigned int (unsigned long *, unsigned int, unsigned int)'
    6854 |         for (i = 0; i < ARRAY_SIZE(stack_trace_hash); i++) {
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/array_size.h:11:59: note: expanded from macro 'ARRAY_SIZE'
      11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
         |                                                           ^~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:205:53: note: expanded from macro '__must_be_array'
     205 | #define __must_be_array(a)      __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \
         |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
     206 |                                                         "must be array")
         |                                                         ~~~~~~~~~~~~~~~~
   include/linux/compiler.h:204:44: note: expanded from macro '__is_array'
     204 | #define __is_array(a)           (!__same_type((a), &(a)[0]))
         |                                                     ^
   include/linux/compiler_types.h:610:74: note: expanded from macro '__same_type'

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for HOTPLUG_CPU
   Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n])
   Selected by [y]:
   - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=n] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]


vim +/bootstrap_stack_trace +6776 kernel/locking/lockdep.c

  6771	
  6772	void __init lockdep_init(void)
  6773	{
  6774		bootstrap_entries = early_list_entries;
  6775		bootstrap_entries_in_use = early_list_entries_in_use;
> 6776		bootstrap_stack_trace = early_stack_trace;
> 6777		bootstrap_stack_trace_in_use = &early_stack_trace_in_use;
  6778	
  6779		pr_info("Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar\n");
  6780	
  6781		pr_info("... MAX_LOCKDEP_SUBCLASSES:  %lu\n", MAX_LOCKDEP_SUBCLASSES);
  6782		pr_info("... MAX_LOCK_DEPTH:          %lu\n", MAX_LOCK_DEPTH);
  6783		pr_info("... MAX_LOCKDEP_KEYS:        %lu\n", MAX_LOCKDEP_KEYS);
  6784		pr_info("... CLASSHASH_SIZE:          %lu\n", CLASSHASH_SIZE);
  6785		pr_info("... MAX_LOCKDEP_ENTRIES:     %lu\n", MAX_LOCKDEP_ENTRIES);
  6786		pr_info("... MAX_LOCKDEP_CHAINS:      %lu\n", MAX_LOCKDEP_CHAINS);
  6787		pr_info("... CHAINHASH_SIZE:          %lu\n", CHAINHASH_SIZE);
  6788	
  6789		pr_info(" memory used by lock dependency info: %zu kB\n",
  6790		       (sizeof(lock_classes) +
  6791			sizeof(lock_classes_in_use) +
  6792			sizeof(classhash_table) +
  6793			sizeof(early_list_entries) +
  6794			sizeof(early_list_entries_in_use) +
  6795			sizeof(chainhash_table) +
  6796			sizeof(delayed_free)
  6797	#ifdef CONFIG_PROVE_LOCKING
  6798			+ sizeof(lock_cq)
  6799			+ sizeof(lock_chains)
  6800			+ sizeof(lock_chains_in_use)
  6801			+ sizeof(chain_hlocks)
  6802	#endif
  6803			) / 1024
  6804			);
  6805	
  6806	#if defined(CONFIG_TRACE_IRQFLAGS) && defined(CONFIG_PROVE_LOCKING)
  6807		pr_info(" memory used for stack traces: dynamic (bootstrap %zu kB)\n",
  6808		       sizeof(early_stack_trace) / 1024
  6809		       );
  6810	#endif
  6811	
  6812		pr_info(" per task-struct memory footprint: %zu bytes\n",
  6813		       sizeof(((struct task_struct *)NULL)->held_locks));
  6814	}
  6815	
  6816	static int __init lockdep_boot_report(void)
  6817	{
  6818		pr_info("lockdep: %lu/%lu bootstrap entries, %lu/%lu bootstrap traces used before buddy init, folio_pool active\n",
  6819			min_t(unsigned long, nr_list_entries, BOOTSTRAP_LOCKDEP_ENTRIES),
  6820			BOOTSTRAP_LOCKDEP_ENTRIES,
  6821			early_stack_trace_in_use,
> 6822			(unsigned long)BOOTSTRAP_STACK_TRACE_ENTRIES);
  6823		return 0;
  6824	}
  6825	core_initcall(lockdep_boot_report);
  6826	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.