tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev head: c155a9e10fd45235f39043c9280d0e0cea89b880 commit: d0498815d6a3cda16e1c56857674938acd7cab6e [38/125] rcu: Define RCU-sched API in terms of RCU for Tree RCU PREEMPT builds config: x86_64-randconfig-x007-201827 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: git checkout d0498815d6a3cda16e1c56857674938acd7cab6e # save the attached .config to linux build tree make ARCH=x86_64 Note: the rcu/dev HEAD c155a9e10fd45235f39043c9280d0e0cea89b880 builds fine. It only hurts bisectibility. All error/warnings (new ones prefixed by >>): In file included from include/linux/kernel.h:10:0, from kernel/rcu/tree.c:34: kernel/rcu/tree_plugin.h: In function 'rcu_flavor_check_callbacks': >> kernel/rcu/tree_plugin.h:785:14: error: implicit declaration of function 'rcu_is_cpu_rrupt_from_idle'; did you mean 'rcu_prepare_for_idle'? [-Werror=implicit-function-declaration] if (user || rcu_is_cpu_rrupt_from_idle()) { ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> kernel/rcu/tree_plugin.h:785:2: note: in expansion of macro 'if' if (user || rcu_is_cpu_rrupt_from_idle()) { ^~ cc1: some warnings being treated as errors vim +785 kernel/rcu/tree_plugin.h 772 773 /* 774 * Check for a quiescent state from the current CPU. When a task blocks, 775 * the task is recorded in the corresponding CPU's rcu_node structure, 776 * which is checked elsewhere. 777 * 778 * Caller must disable hard irqs. 779 */ 780 static void rcu_flavor_check_callbacks(int user) 781 { 782 struct rcu_state *rsp = &rcu_state; 783 struct task_struct *t = current; 784 > 785 if (user || rcu_is_cpu_rrupt_from_idle()) { 786 rcu_note_voluntary_context_switch(current); 787 } 788 if (t->rcu_read_lock_nesting > 0 || 789 (preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK))) { 790 /* No QS, force context switch if deferred. */ 791 if (rcu_preempt_need_deferred_qs(t)) 792 resched_cpu(smp_processor_id()); 793 } else if (rcu_preempt_need_deferred_qs(t)) { 794 rcu_preempt_deferred_qs(t); /* Report deferred QS. */ 795 return; 796 } else if (!t->rcu_read_lock_nesting) { 797 rcu_qs(); /* Report immediate QS. */ 798 return; 799 } 800 801 /* If GP is oldish, ask for help from rcu_read_unlock_special(). */ 802 if (t->rcu_read_lock_nesting > 0 && 803 __this_cpu_read(rcu_data_p->core_needs_qs) && 804 __this_cpu_read(rcu_data_p->cpu_no_qs.b.norm) && 805 !t->rcu_read_unlock_special.b.need_qs && 806 time_after(jiffies, rsp->gp_start + HZ)) 807 t->rcu_read_unlock_special.b.need_qs = true; 808 } 809 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation