tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git 
rcu/next
head:   ff423bbbe3d93b15a89d14de24a90937814cda16
commit: ff423bbbe3d93b15a89d14de24a90937814cda16 [31/31] rcu: Add ->dynticks 
field to rcu_dyntick trace event
config: i386-randconfig-x001-201740 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout ff423bbbe3d93b15a89d14de24a90937814cda16
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   kernel/rcu/tree.c: In function 'rcu_eqs_enter_common':
>> kernel/rcu/tree.c:764:75: error: macro "trace_rcu_dyntick" passed 4 
>> arguments, but takes just 3
     trace_rcu_dyntick(TPS("Start"), rdtp->dynticks_nesting, 0, rdtp->dynticks);
                                                                              ^
>> kernel/rcu/tree.c:764:2: error: 'trace_rcu_dyntick' undeclared (first use in 
>> this function)
     trace_rcu_dyntick(TPS("Start"), rdtp->dynticks_nesting, 0, rdtp->dynticks);
     ^~~~~~~~~~~~~~~~~
   kernel/rcu/tree.c:764:2: note: each undeclared identifier is reported only 
once for each function it appears in
   kernel/rcu/tree.c:770:100: error: macro "trace_rcu_dyntick" passed 4 
arguments, but takes just 3
      trace_rcu_dyntick(TPS("Error on entry: not idle task"), 
rdtp->dynticks_nesting, 0, rdtp->dynticks);
                                                                                
                       ^
   kernel/rcu/tree.c: In function 'rcu_nmi_exit':
   kernel/rcu/tree.c:883:107: error: macro "trace_rcu_dyntick" passed 4 
arguments, but takes just 3
      trace_rcu_dyntick(TPS("--="), rdtp->dynticks_nmi_nesting, 
rdtp->dynticks_nmi_nesting - 2, rdtp->dynticks);
                                                                                
                              ^
   kernel/rcu/tree.c:883:3: error: 'trace_rcu_dyntick' undeclared (first use in 
this function)
      trace_rcu_dyntick(TPS("--="), rdtp->dynticks_nmi_nesting, 
rdtp->dynticks_nmi_nesting - 2, rdtp->dynticks);
      ^~~~~~~~~~~~~~~~~
   kernel/rcu/tree.c:890:82: error: macro "trace_rcu_dyntick" passed 4 
arguments, but takes just 3
     trace_rcu_dyntick(TPS("Startirq"), rdtp->dynticks_nmi_nesting, 0, 
rdtp->dynticks);
                                                                                
     ^
   kernel/rcu/tree.c: In function 'rcu_eqs_exit_common':
   kernel/rcu/tree.c:956:78: error: macro "trace_rcu_dyntick" passed 4 
arguments, but takes just 3
     trace_rcu_dyntick(TPS("End"), rdtp->dynticks_nesting, newval, 
rdtp->dynticks);
                                                                                
 ^
   kernel/rcu/tree.c:956:2: error: 'trace_rcu_dyntick' undeclared (first use in 
this function)
     trace_rcu_dyntick(TPS("End"), rdtp->dynticks_nesting, newval, 
rdtp->dynticks);
     ^~~~~~~~~~~~~~~~~
   kernel/rcu/tree.c:962:104: error: macro "trace_rcu_dyntick" passed 4 
arguments, but takes just 3
      trace_rcu_dyntick(TPS("Error on exit: not idle task"), 
rdtp->dynticks_nesting, newval, rdtp->dynticks);
                                                                                
                           ^
   kernel/rcu/tree.c: In function 'rcu_nmi_enter':
   kernel/rcu/tree.c:1064:56: error: macro "trace_rcu_dyntick" passed 4 
arguments, but takes just 3
         rdtp->dynticks_nmi_nesting + incby, rdtp->dynticks);
                                                           ^
   kernel/rcu/tree.c:1062:2: error: 'trace_rcu_dyntick' undeclared (first use 
in this function)
     trace_rcu_dyntick(incby == 1 ? TPS("Endirq") : TPS("++="),
     ^~~~~~~~~~~~~~~~~

vim +/trace_rcu_dyntick +764 kernel/rcu/tree.c

   750  
   751  /*
   752   * rcu_eqs_enter_common - current CPU is entering an extended quiescent 
state
   753   *
   754   * Enter idle, doing appropriate accounting.  The caller must have
   755   * disabled interrupts.
   756   */
   757  static void rcu_eqs_enter_common(bool user)
   758  {
   759          struct rcu_state *rsp;
   760          struct rcu_data *rdp;
   761          struct rcu_dynticks *rdtp = this_cpu_ptr(&rcu_dynticks);
   762  
   763          RCU_LOCKDEP_WARN(!irqs_disabled(), "rcu_eqs_enter_common() 
invoked with irqs enabled!!!");
 > 764          trace_rcu_dyntick(TPS("Start"), rdtp->dynticks_nesting, 0, 
 > rdtp->dynticks);
   765          if (IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
   766              !user && !is_idle_task(current)) {
   767                  struct task_struct *idle __maybe_unused =
   768                          idle_task(smp_processor_id());
   769  
   770                  trace_rcu_dyntick(TPS("Error on entry: not idle task"), 
rdtp->dynticks_nesting, 0, rdtp->dynticks);
   771                  rcu_ftrace_dump(DUMP_ORIG);
   772                  WARN_ONCE(1, "Current pid: %d comm: %s / Idle pid: %d 
comm: %s",
   773                            current->pid, current->comm,
   774                            idle->pid, idle->comm); /* must be idle task! 
*/
   775          }
   776          for_each_rcu_flavor(rsp) {
   777                  rdp = this_cpu_ptr(rsp->rda);
   778                  do_nocb_deferred_wakeup(rdp);
   779          }
   780          rcu_prepare_for_idle();
   781          rdtp->dynticks_nesting = 0;
   782          rcu_dynticks_eqs_enter();
   783          rcu_dynticks_task_enter();
   784  
   785          /*
   786           * It is illegal to enter an extended quiescent state while
   787           * in an RCU read-side critical section.
   788           */
   789          RCU_LOCKDEP_WARN(lock_is_held(&rcu_lock_map),
   790                           "Illegal idle entry in RCU read-side critical 
section.");
   791          RCU_LOCKDEP_WARN(lock_is_held(&rcu_bh_lock_map),
   792                           "Illegal idle entry in RCU-bh read-side 
critical section.");
   793          RCU_LOCKDEP_WARN(lock_is_held(&rcu_sched_lock_map),
   794                           "Illegal idle entry in RCU-sched read-side 
critical section.");
   795  }
   796  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to