lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <201802011554.rmzK3XXS%fengguang.wu@intel.com>
Date:   Thu, 1 Feb 2018 15:43:58 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: [rcu:rcu/dev 48/48] kernel/rcu/tree_exp.h:407:3: note: in expansion
 of macro 'trace_printk'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/dev
head:   32860a6da7c75039afea229ba396aeac3b708d6b
commit: 32860a6da7c75039afea229ba396aeac3b708d6b [48/48] EXP rcu: Add trace_printk()s to probe expedited CPU selection
config: sparc64-allyesconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 32860a6da7c75039afea229ba396aeac3b708d6b
        # save the attached .config to linux build tree
        make.cross ARCH=sparc64 

All warnings (new ones prefixed by >>):

   In file included from kernel/rcu/tree.c:31:0:
   kernel/rcu/tree_exp.h: In function 'sync_rcu_exp_select_cpus':
   kernel/rcu/tree_exp.h:407:16: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'int' [-Wformat=]
      trace_printk("%s rnp %d:%d first pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!rnp->exp_tasks);
                   ^                                                                                                ~~~~~~~~
   include/linux/kernel.h:634:33: note: in definition of macro '__trace_printk_check_format'
      ____trace_printk_check_format(fmt, ##args);  \
                                    ^~~
>> include/linux/kernel.h:671:3: note: in expansion of macro 'do_trace_printk'
      do_trace_printk(fmt, ##__VA_ARGS__); \
      ^~~~~~~~~~~~~~~
>> kernel/rcu/tree_exp.h:407:3: note: in expansion of macro 'trace_printk'
      trace_printk("%s rnp %d:%d first pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!rnp->exp_tasks);
      ^~~~~~~~~~~~
   kernel/rcu/tree_exp.h:407:16: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'int' [-Wformat=]
      trace_printk("%s rnp %d:%d first pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!rnp->exp_tasks);
                   ^                                                                                                ~~~~~~~~
   include/linux/kernel.h:687:29: note: in definition of macro 'do_trace_printk'
      __trace_printk(_THIS_IP_, fmt, ##args);   \
                                ^~~
>> kernel/rcu/tree_exp.h:407:3: note: in expansion of macro 'trace_printk'
      trace_printk("%s rnp %d:%d first pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!rnp->exp_tasks);
      ^~~~~~~~~~~~
   kernel/rcu/tree_exp.h:446:16: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'int' [-Wformat=]
      trace_printk("%s rnp %d:%d second pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!READ_ONCE(rnp->exp_tasks));
                   ^
   include/linux/kernel.h:634:33: note: in definition of macro '__trace_printk_check_format'
      ____trace_printk_check_format(fmt, ##args);  \
                                    ^~~
>> include/linux/kernel.h:671:3: note: in expansion of macro 'do_trace_printk'
      do_trace_printk(fmt, ##__VA_ARGS__); \
      ^~~~~~~~~~~~~~~
   kernel/rcu/tree_exp.h:446:3: note: in expansion of macro 'trace_printk'
      trace_printk("%s rnp %d:%d second pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!READ_ONCE(rnp->exp_tasks));
      ^~~~~~~~~~~~
   kernel/rcu/tree_exp.h:446:16: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'int' [-Wformat=]
      trace_printk("%s rnp %d:%d second pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!READ_ONCE(rnp->exp_tasks));
                   ^
   include/linux/kernel.h:687:29: note: in definition of macro 'do_trace_printk'
      __trace_printk(_THIS_IP_, fmt, ##args);   \
                                ^~~
   kernel/rcu/tree_exp.h:446:3: note: in expansion of macro 'trace_printk'
      trace_printk("%s rnp %d:%d second pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!READ_ONCE(rnp->exp_tasks));
      ^~~~~~~~~~~~

vim +/trace_printk +407 kernel/rcu/tree_exp.h

   363	
   364	/*
   365	 * Select the nodes that the upcoming expedited grace period needs
   366	 * to wait for.
   367	 */
   368	static void sync_rcu_exp_select_cpus(struct rcu_state *rsp,
   369					     smp_call_func_t func)
   370	{
   371		int cpu;
   372		unsigned long flags;
   373		unsigned long mask_ofl_test;
   374		unsigned long mask_ofl_ipi;
   375		int ret;
   376		struct rcu_node *rnp;
   377	
   378		trace_rcu_exp_grace_period(rsp->name, rcu_exp_gp_seq_endval(rsp), TPS("reset"));
   379		sync_exp_reset_tree(rsp);
   380		trace_rcu_exp_grace_period(rsp->name, rcu_exp_gp_seq_endval(rsp), TPS("select"));
   381		rcu_for_each_leaf_node(rsp, rnp) {
   382			raw_spin_lock_irqsave_rcu_node(rnp, flags);
   383	
   384			/* Each pass checks a CPU for identity, offline, and idle. */
   385			mask_ofl_test = 0;
   386			for_each_leaf_node_possible_cpu(rnp, cpu) {
   387				struct rcu_data *rdp = per_cpu_ptr(rsp->rda, cpu);
   388	
   389				rdp->exp_dynticks_snap =
   390					rcu_dynticks_snap(rdp->dynticks);
   391				if (raw_smp_processor_id() == cpu ||
   392				    rcu_dynticks_in_eqs(rdp->exp_dynticks_snap) ||
   393				    !(rnp->qsmaskinitnext & rdp->grpmask))
   394					mask_ofl_test |= rdp->grpmask;
   395				trace_printk("%s rnp %d:%d first pass CPU %d\n", __func__, rnp->grplo, rnp->grphi, cpu);
   396			}
   397			mask_ofl_ipi = rnp->expmask & ~mask_ofl_test;
   398	
   399			/*
   400			 * Need to wait for any blocked tasks as well.  Note that
   401			 * additional blocking tasks will also block the expedited
   402			 * GP until such time as the ->expmask bits are cleared.
   403			 */
   404			if (rcu_preempt_has_tasks(rnp))
   405				rnp->exp_tasks = rnp->blkd_tasks.next;
   406			raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
 > 407			trace_printk("%s rnp %d:%d first pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!rnp->exp_tasks);
   408	
   409			/* IPI the remaining CPUs for expedited quiescent state. */
   410			for_each_leaf_node_possible_cpu(rnp, cpu) {
   411				unsigned long mask = leaf_node_cpu_bit(rnp, cpu);
   412				struct rcu_data *rdp = per_cpu_ptr(rsp->rda, cpu);
   413	
   414				if (!(mask_ofl_ipi & mask))
   415					continue;
   416	retry_ipi:
   417				if (rcu_dynticks_in_eqs_since(rdp->dynticks,
   418							      rdp->exp_dynticks_snap)) {
   419					mask_ofl_test |= mask;
   420					continue;
   421				}
   422				ret = smp_call_function_single(cpu, func, rsp, 0);
   423				if (!ret) {
   424					mask_ofl_ipi &= ~mask;
   425					continue;
   426				}
   427				/* Failed, raced with CPU hotplug operation. */
   428				raw_spin_lock_irqsave_rcu_node(rnp, flags);
   429				if ((rnp->qsmaskinitnext & mask) &&
   430				    (rnp->expmask & mask)) {
   431					/* Online, so delay for a bit and try again. */
   432					raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
   433					trace_rcu_exp_grace_period(rsp->name, rcu_exp_gp_seq_endval(rsp), TPS("selectofl"));
   434					schedule_timeout_uninterruptible(1);
   435					goto retry_ipi;
   436				}
   437				/* CPU really is offline, so we can ignore it. */
   438				if (!(rnp->expmask & mask))
   439					mask_ofl_ipi &= ~mask;
   440				raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
   441			}
   442			/* Report quiescent states for those that went offline. */
   443			mask_ofl_test |= mask_ofl_ipi;
   444			if (mask_ofl_test)
   445				rcu_report_exp_cpu_mult(rsp, rnp, mask_ofl_test, false);
   446			trace_printk("%s rnp %d:%d second pass mask %#lx tasks %ld\n", __func__, rnp->grplo, rnp->grphi, mask_ofl_ipi, !!READ_ONCE(rnp->exp_tasks));
   447		}
   448	}
   449	

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

Download attachment ".config.gz" of type "application/gzip" (53048 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ