[linux-next:master 9887/10451] kernel/rcu/tree_exp.h:556:undefined reference to `csd_lock_is_stuck'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   0b58e108042b0ed28a71cd7edf5175999955b233
commit: 3d2660b7a83bf2d9ff0abb7485478d533b269b6d [9887/10451] rcu: Summarize expedited RCU CPU stall warnings during CSD-lock stalls
config: x86_64-randconfig-a014-20211016 (https://download.01.org/0day-ci/archive/20240703/202407031959.r1UufFHc-lkp@xxxxxxxxx/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240703/202407031959.r1UufFHc-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407031959.r1UufFHc-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

   ld: vmlinux.o: in function `synchronize_rcu_expedited_stall':
>> kernel/rcu/tree_exp.h:556:(.text+0x26ed6c): undefined reference to `csd_lock_is_stuck'
   ld: vmlinux.o: in function `check_cpu_stall':
   kernel/rcu/tree_stall.h:797:(.text+0x273c24): undefined reference to `csd_lock_is_stuck'


vim +556 kernel/rcu/tree_exp.h

   544	
   545	/*
   546	 * Print out an expedited RCU CPU stall warning message.
   547	 */
   548	static void synchronize_rcu_expedited_stall(unsigned long jiffies_start, unsigned long j)
   549	{
   550		int cpu;
   551		unsigned long mask;
   552		int ndetected;
   553		struct rcu_node *rnp;
   554		struct rcu_node *rnp_root = rcu_get_root();
   555	
 > 556		if (READ_ONCE(csd_lock_suppress_rcu_stall) && csd_lock_is_stuck()) {
   557			pr_err("INFO: %s detected expedited stalls, but suppressed full report due to a stuck CSD-lock.\n", rcu_state.name);
   558			return;
   559		}
   560		pr_err("INFO: %s detected expedited stalls on CPUs/tasks: {", rcu_state.name);
   561		ndetected = 0;
   562		rcu_for_each_leaf_node(rnp) {
   563			ndetected += rcu_print_task_exp_stall(rnp);
   564			for_each_leaf_node_possible_cpu(rnp, cpu) {
   565				struct rcu_data *rdp;
   566	
   567				mask = leaf_node_cpu_bit(rnp, cpu);
   568				if (!(READ_ONCE(rnp->expmask) & mask))
   569					continue;
   570				ndetected++;
   571				rdp = per_cpu_ptr(&rcu_data, cpu);
   572				pr_cont(" %d-%c%c%c%c", cpu,
   573					"O."[!!cpu_online(cpu)],
   574					"o."[!!(rdp->grpmask & rnp->expmaskinit)],
   575					"N."[!!(rdp->grpmask & rnp->expmaskinitnext)],
   576					"D."[!!data_race(rdp->cpu_no_qs.b.exp)]);
   577			}
   578		}
   579		pr_cont(" } %lu jiffies s: %lu root: %#lx/%c\n",
   580			j - jiffies_start, rcu_state.expedited_sequence, data_race(rnp_root->expmask),
   581			".T"[!!data_race(rnp_root->exp_tasks)]);
   582		if (ndetected) {
   583			pr_err("blocking rcu_node structures (internal RCU debug):");
   584			rcu_for_each_node_breadth_first(rnp) {
   585				if (rnp == rnp_root)
   586					continue; /* printed unconditionally */
   587				if (sync_rcu_exp_done_unlocked(rnp))
   588					continue;
   589				pr_cont(" l=%u:%d-%d:%#lx/%c",
   590					rnp->level, rnp->grplo, rnp->grphi, data_race(rnp->expmask),
   591					".T"[!!data_race(rnp->exp_tasks)]);
   592			}
   593			pr_cont("\n");
   594		}
   595		rcu_for_each_leaf_node(rnp) {
   596			for_each_leaf_node_possible_cpu(rnp, cpu) {
   597				mask = leaf_node_cpu_bit(rnp, cpu);
   598				if (!(READ_ONCE(rnp->expmask) & mask))
   599					continue;
   600				preempt_disable(); // For smp_processor_id() in dump_cpu_task().
   601				dump_cpu_task(cpu);
   602				preempt_enable();
   603			}
   604			rcu_exp_print_detail_task_stall_rnp(rnp);
   605		}
   606	}
   607	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux