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


Reply via email to