mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [frederic-dynticks:rcu/context-tracking-v4 9/20] kernel/softirq.c:610: undefined reference to `ct_irq_enter'
@ 2022-06-04 21:49 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-06-04 21:49 UTC (permalink / raw)
  To: Frederic Weisbecker; +Cc: kbuild-all, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git rcu/context-tracking-v4
head:   77493b1db618c61dec140cbab830832f77203d69
commit: ede17b80373d0c3e886b3b4d9533f6c12cf1e799 [9/20] context_tracking: Take IRQ eqs entrypoints over RCU
config: x86_64-randconfig-a008 (https://download.01.org/0day-ci/archive/20220605/202206050548.DSjyYju7-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git/commit/?id=ede17b80373d0c3e886b3b4d9533f6c12cf1e799
        git remote add frederic-dynticks https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
        git fetch --no-tags frederic-dynticks rcu/context-tracking-v4
        git checkout ede17b80373d0c3e886b3b4d9533f6c12cf1e799
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   vmlinux.o: warning: objtool: pvh_start_xen()+0x0: unreachable instruction
   ld: vmlinux.o: in function `irq_enter':
>> kernel/softirq.c:610: undefined reference to `ct_irq_enter'
   ld: vmlinux.o: in function `irq_exit':
>> kernel/softirq.c:662: undefined reference to `ct_irq_exit'
   ld: vmlinux.o: in function `trace_console_rcuidle':
>> include/trace/events/printk.h:10: undefined reference to `ct_irq_enter_irqson'
>> ld: include/trace/events/printk.h:10: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `bc_set_next':
>> kernel/time/tick-broadcast-hrtimer.c:64: undefined reference to `ct_irq_enter_irqson'
>> ld: kernel/time/tick-broadcast-hrtimer.c:64: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_irq_disable_rcuidle':
>> include/trace/events/preemptirq.h:36: undefined reference to `ct_irq_enter_irqson'
>> ld: include/trace/events/preemptirq.h:36: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_irq_enable_rcuidle':
   include/trace/events/preemptirq.h:40: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/preemptirq.h:40: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_disable_rcuidle':
>> include/trace/events/clk.h:46: undefined reference to `ct_irq_enter_irqson'
>> ld: include/trace/events/clk.h:46: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_disable_complete_rcuidle':
   include/trace/events/clk.h:53: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/clk.h:53: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_enable_rcuidle':
   include/trace/events/clk.h:32: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/clk.h:32: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_enable_complete_rcuidle':
   include/trace/events/clk.h:39: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/clk.h:39: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `irqentry_exit':
>> kernel/entry/common.c:421: undefined reference to `ct_irq_exit'
>> ld: kernel/entry/common.c:439: undefined reference to `ct_irq_exit'


vim +610 kernel/softirq.c

   604	
   605	/**
   606	 * irq_enter - Enter an interrupt context including RCU update
   607	 */
   608	void irq_enter(void)
   609	{
 > 610		ct_irq_enter();
   611		irq_enter_rcu();
   612	}
   613	
   614	static inline void tick_irq_exit(void)
   615	{
   616	#ifdef CONFIG_NO_HZ_COMMON
   617		int cpu = smp_processor_id();
   618	
   619		/* Make sure that timer wheel updates are propagated */
   620		if ((idle_cpu(cpu) && !need_resched()) || tick_nohz_full_cpu(cpu)) {
   621			if (!in_hardirq())
   622				tick_nohz_irq_exit();
   623		}
   624	#endif
   625	}
   626	
   627	static inline void __irq_exit_rcu(void)
   628	{
   629	#ifndef __ARCH_IRQ_EXIT_IRQS_DISABLED
   630		local_irq_disable();
   631	#else
   632		lockdep_assert_irqs_disabled();
   633	#endif
   634		account_hardirq_exit(current);
   635		preempt_count_sub(HARDIRQ_OFFSET);
   636		if (!in_interrupt() && local_softirq_pending())
   637			invoke_softirq();
   638	
   639		tick_irq_exit();
   640	}
   641	
   642	/**
   643	 * irq_exit_rcu() - Exit an interrupt context without updating RCU
   644	 *
   645	 * Also processes softirqs if needed and possible.
   646	 */
   647	void irq_exit_rcu(void)
   648	{
   649		__irq_exit_rcu();
   650		 /* must be last! */
   651		lockdep_hardirq_exit();
   652	}
   653	
   654	/**
   655	 * irq_exit - Exit an interrupt context, update RCU and lockdep
   656	 *
   657	 * Also processes softirqs if needed and possible.
   658	 */
   659	void irq_exit(void)
   660	{
   661		__irq_exit_rcu();
 > 662		ct_irq_exit();
   663		 /* must be last! */
   664		lockdep_hardirq_exit();
   665	}
   666	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-04 21:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-04 21:49 [frederic-dynticks:rcu/context-tracking-v4 9/20] kernel/softirq.c:610: undefined reference to `ct_irq_enter' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®