Hi, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on linus/master] [also build test ERROR on v5.5-rc3] [cannot apply to tip/x86/core tip/x86/mm efi/next next-20191219] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/glider-google-com/Add-KernelMemorySanitizer-infrastructure/20191224-024330 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 46cf053efec6a3a5f343fead837777efe8252a46 config: x86_64-randconfig-s0-20191224 (attached as .config) compiler: gcc-6 (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): kernel/softirq.c: In function 'invoke_softirq': >> kernel/softirq.c:374:3: error: implicit declaration of function 'kmsan_context_enter' [-Werror=implicit-function-declaration] kmsan_context_enter(); ^~~~~~~~~~~~~~~~~~~ >> kernel/softirq.c:376:3: error: implicit declaration of function 'kmsan_context_exit' [-Werror=implicit-function-declaration] kmsan_context_exit(); ^~~~~~~~~~~~~~~~~~ Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:arch_clear_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:arch_test_and_set_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:arch_test_and_clear_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:ffs Cyclomatic Complexity 1 include/asm-generic/bitops/instrumented-atomic.h:clear_bit Cyclomatic Complexity 1 include/asm-generic/bitops/instrumented-atomic.h:test_and_set_bit Cyclomatic Complexity 1 include/asm-generic/bitops/instrumented-atomic.h:test_and_clear_bit Cyclomatic Complexity 1 include/linux/list.h:hlist_empty Cyclomatic Complexity 2 arch/x86/include/asm/jump_label.h:arch_static_branch Cyclomatic Complexity 1 include/linux/jump_label.h:static_key_false Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_set Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_set Cyclomatic Complexity 1 include/linux/cpumask.h:cpu_max_bits_warn Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_check Cyclomatic Complexity 1 include/linux/percpu-defs.h:__this_cpu_preempt_check Cyclomatic Complexity 1 arch/x86/include/asm/current.h:get_current Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_save_fl Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_restore_fl Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_irq_disable Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_irq_enable Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_save_flags Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_restore Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_disable Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_enable Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_save Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_irqs_disabled_flags Cyclomatic Complexity 1 arch/x86/include/asm/preempt.h:preempt_count Cyclomatic Complexity 2 arch/x86/include/asm/preempt.h:preempt_count_set Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_add Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_sub Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_read_lock_sched_notrace Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_read_unlock_sched_notrace Cyclomatic Complexity 1 include/linux/jiffies.h:_msecs_to_jiffies Cyclomatic Complexity 3 include/linux/jiffies.h:msecs_to_jiffies Cyclomatic Complexity 1 include/linux/vtime.h:vtime_account_irq_enter Cyclomatic Complexity 1 include/linux/vtime.h:vtime_account_irq_exit Cyclomatic Complexity 1 include/linux/interrupt.h:tasklet_trylock Cyclomatic Complexity 1 include/linux/interrupt.h:tasklet_unlock Cyclomatic Complexity 1 include/linux/sched.h:current_restore_flags Cyclomatic Complexity 1 include/linux/sched.h:is_idle_task Cyclomatic Complexity 1 include/linux/sched.h:need_resched Cyclomatic Complexity 1 include/linux/kernel_stat.h:kstat_incr_softirqs_this_cpu Cyclomatic Complexity 1 include/linux/trace_events.h:bpf_prog_array_valid Cyclomatic Complexity 1 include/trace/events/irq.h:trace_event_get_offsets_irq_handler_exit Cyclomatic Complexity 1 include/trace/events/irq.h:trace_event_get_offsets_softirq Cyclomatic Complexity 2 kernel/softirq.c:lockdep_softirq_start Cyclomatic Complexity 2 kernel/softirq.c:lockdep_softirq_end Cyclomatic Complexity 1 kernel/softirq.c:tick_irq_exit Cyclomatic Complexity 1 kernel/softirq.c:tasklet_init Cyclomatic Complexity 1 kernel/softirq.c:ksoftirqd_should_run Cyclomatic Complexity 2 include/trace/events/irq.h:trace_event_define_fields_irq_handler_entry Cyclomatic Complexity 3 include/trace/events/irq.h:trace_event_define_fields_irq_handler_exit Cyclomatic Complexity 2 include/trace/events/irq.h:trace_event_define_fields_softirq Cyclomatic Complexity 2 include/asm-generic/bitops/instrumented-non-atomic.h:test_bit Cyclomatic Complexity 1 include/linux/cpumask.h:cpumask_test_cpu Cyclomatic Complexity 1 include/linux/thread_info.h:test_ti_thread_flag Cyclomatic Complexity 2 include/linux/interrupt.h:tasklet_unlock_wait Cyclomatic Complexity 2 include/trace/events/irq.h:trace_event_get_offsets_irq_handler_entry Cyclomatic Complexity 1 include/linux/perf_event.h:perf_fetch_caller_regs Cyclomatic Complexity 7 include/trace/events/irq.h:perf_trace_irq_handler_entry Cyclomatic Complexity 6 include/trace/events/irq.h:perf_trace_irq_handler_exit Cyclomatic Complexity 6 include/trace/events/irq.h:perf_trace_softirq Cyclomatic Complexity 5 include/linux/trace_events.h:trace_trigger_soft_disabled Cyclomatic Complexity 4 include/trace/events/irq.h:trace_event_raw_event_irq_handler_entry Cyclomatic Complexity 3 include/trace/events/irq.h:trace_event_raw_event_irq_handler_exit Cyclomatic Complexity 3 include/trace/events/irq.h:trace_event_raw_event_softirq Cyclomatic Complexity 2 include/trace/events/irq.h:trace_raw_output_irq_handler_entry Cyclomatic Complexity 3 include/trace/events/irq.h:trace_raw_output_irq_handler_exit Cyclomatic Complexity 2 include/trace/events/irq.h:trace_raw_output_softirq Cyclomatic Complexity 1 include/trace/events/irq.h:__bpf_trace_irq_handler_entry Cyclomatic Complexity 1 include/trace/events/irq.h:__bpf_trace_irq_handler_exit Cyclomatic Complexity 1 include/trace/events/irq.h:__bpf_trace_softirq Cyclomatic Complexity 3 kernel/softirq.c:__local_bh_disable_ip Cyclomatic Complexity 1 include/linux/bottom_half.h:local_bh_disable Cyclomatic Complexity 8 kernel/softirq.c:__local_bh_enable Cyclomatic Complexity 2 kernel/softirq.c:_local_bh_enable Cyclomatic Complexity 1 include/linux/vtime.h:account_irq_enter_time Cyclomatic Complexity 1 include/linux/vtime.h:account_irq_exit_time Cyclomatic Complexity 10 include/trace/events/irq.h:trace_softirq_entry Cyclomatic Complexity 10 include/trace/events/irq.h:trace_softirq_exit Cyclomatic Complexity 10 include/trace/events/irq.h:trace_softirq_raise Cyclomatic Complexity 3 kernel/softirq.c:wakeup_softirqd Cyclomatic Complexity 5 kernel/softirq.c:ksoftirqd_running Cyclomatic Complexity 4 kernel/softirq.c:tasklet_kill Cyclomatic Complexity 1 include/linux/cpuhotplug.h:cpuhp_setup_state_nocalls Cyclomatic Complexity 1 kernel/softirq.c:spawn_ksoftirqd Cyclomatic Complexity 11 kernel/softirq.c:__do_softirq Cyclomatic Complexity 3 kernel/softirq.c:invoke_softirq Cyclomatic Complexity 2 kernel/softirq.c:run_ksoftirqd Cyclomatic Complexity 5 kernel/softirq.c:do_softirq vim +/kmsan_context_enter +374 kernel/softirq.c 361 362 static inline void invoke_softirq(void) 363 { 364 if (ksoftirqd_running(local_softirq_pending())) 365 return; 366 367 if (!force_irqthreads) { 368 #ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK 369 /* 370 * We can safely execute softirq on the current stack if 371 * it is the irq stack, because it should be near empty 372 * at this stage. 373 */ > 374 kmsan_context_enter(); 375 __do_softirq(); > 376 kmsan_context_exit(); 377 #else 378 /* 379 * Otherwise, irq_exit() is called on the task stack that can 380 * be potentially deep already. So call softirq in its own stack 381 * to prevent from any overrun. 382 */ 383 do_softirq_own_stack(); 384 #endif 385 } else { 386 wakeup_softirqd(); 387 } 388 } 389 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation