[rcu:rcu/next 31/31] kernel/rcu/tree.c:764:75: error: macro "trace_rcu_dyntick" passed 4 arguments, but takes just 3

From: kbuild test robot
Date: Wed Oct 04 2017 - 19:41:19 EST


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