[frederic-dynticks:rcu/context-tracking-v4 10/20] kernel/entry/common.c:452: undefined reference to `ct_nmi_enter'
From: kernel test robot
Date: Sat Jun 04 2022 - 18:42:09 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git rcu/context-tracking-v4
head: 77493b1db618c61dec140cbab830832f77203d69
commit: d3d60b6390751cda15d2295725673f78303e4ea4 [10/20] context_tracking: Take NMI eqs entrypoints over RCU
config: x86_64-randconfig-a008 (https://download.01.org/0day-ci/archive/20220605/202206050647.OqMhvNtv-lkp@xxxxxxxxx/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=d3d60b6390751cda15d2295725673f78303e4ea4
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 d3d60b6390751cda15d2295725673f78303e4ea4
# 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@xxxxxxxxx>
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_nmi_enter':
>> kernel/entry/common.c:452: undefined reference to `ct_nmi_enter'
ld: vmlinux.o: in function `irqentry_nmi_exit':
>> kernel/entry/common.c:472: undefined reference to `ct_nmi_exit'
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 +452 kernel/entry/common.c
442
443 irqentry_state_t noinstr irqentry_nmi_enter(struct pt_regs *regs)
444 {
445 irqentry_state_t irq_state;
446
447 irq_state.lockdep = lockdep_hardirqs_enabled();
448
449 __nmi_enter();
450 lockdep_hardirqs_off(CALLER_ADDR0);
451 lockdep_hardirq_enter();
> 452 ct_nmi_enter();
453
454 instrumentation_begin();
455 trace_hardirqs_off_finish();
456 ftrace_nmi_enter();
457 instrumentation_end();
458
459 return irq_state;
460 }
461
462 void noinstr irqentry_nmi_exit(struct pt_regs *regs, irqentry_state_t irq_state)
463 {
464 instrumentation_begin();
465 ftrace_nmi_exit();
466 if (irq_state.lockdep) {
467 trace_hardirqs_on_prepare();
468 lockdep_hardirqs_on_prepare(CALLER_ADDR0);
469 }
470 instrumentation_end();
471
> 472 ct_nmi_exit();
--
0-DAY CI Kernel Test Service
https://01.org/lkp