On Sat, Mar 23, 2019 at 10:16:23AM +0800, kbuild test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > dev.2019.03.20b > head: 6d4434b4b4df791620743178e1419de882b44c7b > commit: d0f41d341df0520e900cac03de05bbbd11abdcd9 [59/83] rcu: Enable > elimination of Tree-RCU softirq processing > config: i386-randconfig-x002-201911 (attached as .config) > compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 > reproduce: > git checkout d0f41d341df0520e900cac03de05bbbd11abdcd9 > # save the attached .config to linux build tree > make ARCH=i386 > > Note: the rcu/dev.2019.03.20b HEAD 6d4434b4b4df791620743178e1419de882b44c7b > builds fine. > It only hurts bisectibility. > > All errors (new ones prefixed by >>): > > In file included from kernel/rcu/tree.c:3489:0: > kernel/rcu/tree_plugin.h: In function 'rcu_read_unlock_special': > >> kernel/rcu/tree_plugin.h:612:8: error: 'rcu_softirq_enabled' undeclared > >> (first use in this function); did you mean 'trace_softirqs_enabled'? > if (rcu_softirq_enabled) > ^~~~~~~~~~~~~~~~~~~ > trace_softirqs_enabled > kernel/rcu/tree_plugin.h:612:8: note: each undeclared identifier is > reported only once for each function it appears in
This commit has been superseced by 132e805a28dc, which I believe has fixed this. (Famous last words!) Thanx, Paul > vim +612 kernel/rcu/tree_plugin.h > > 588 > 589 /* > 590 * Handle special cases during rcu_read_unlock(), such as > needing to > 591 * notify RCU core processing or task having blocked during the > RCU > 592 * read-side critical section. > 593 */ > 594 static void rcu_read_unlock_special(struct task_struct *t) > 595 { > 596 unsigned long flags; > 597 bool preempt_bh_were_disabled = > 598 !!(preempt_count() & (PREEMPT_MASK | > SOFTIRQ_MASK)); > 599 bool irqs_were_disabled; > 600 > 601 /* NMI handlers cannot block and cannot safely > manipulate state. */ > 602 if (in_nmi()) > 603 return; > 604 > 605 local_irq_save(flags); > 606 irqs_were_disabled = irqs_disabled_flags(flags); > 607 if (preempt_bh_were_disabled || irqs_were_disabled) { > 608 > WRITE_ONCE(t->rcu_read_unlock_special.b.exp_hint, false); > 609 /* Need to defer quiescent state until > everything is enabled. */ > 610 if (irqs_were_disabled) { > 611 /* Enabling irqs does not reschedule, > so... */ > > 612 if (rcu_softirq_enabled) > 613 > raise_softirq_irqoff(RCU_SOFTIRQ); > 614 else > 615 invoke_rcu_core(); > 616 } else { > 617 /* Enabling BH or preempt does > reschedule, so... */ > 618 set_tsk_need_resched(current); > 619 set_preempt_need_resched(); > 620 } > 621 local_irq_restore(flags); > 622 return; > 623 } > 624 WRITE_ONCE(t->rcu_read_unlock_special.b.exp_hint, > false); > 625 rcu_preempt_deferred_qs_irqrestore(t, flags); > 626 } > 627 > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation