* [rcu:dev.2018.10.03a 44/73] kernel/rcu/tree.c:2704:5: warning: 'max_cpu' may be used uninitialized in this function
@ 2018-10-08 11:25 kbuild test robot
2018-10-13 23:19 ` Paul E. McKenney
0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2018-10-08 11:25 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: kbuild-all, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2402 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2018.10.03a
head: ef44a26c84188888f97e5d7b3f8e4f8c0decd248
commit: 813f47a94e3b61439bba90340b532f3a6319d4f5 [44/73] rcu: Print per-CPU callback counts for forward-progress failures
config: x86_64-randconfig-x006-10081527 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
git checkout 813f47a94e3b61439bba90340b532f3a6319d4f5
# save the attached .config to linux build tree
make ARCH=x86_64
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
kernel/rcu/tree.c: In function 'rcu_fwd_progress_check':
>> kernel/rcu/tree.c:2704:5: warning: 'max_cpu' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (max_cpu >= 0)
^
>> kernel/rcu/tree.c:2699:6: warning: 'max_cbs' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (cbs <= max_cbs)
^
vim +/max_cpu +2704 kernel/rcu/tree.c
2670
2671 /*
2672 * Do a forward-progress check for rcutorture. This is normally invoked
2673 * due to an OOM event. The argument "j" gives the time period during
2674 * which rcutorture would like progress to have been made.
2675 */
2676 void rcu_fwd_progress_check(unsigned long j)
2677 {
2678 unsigned long cbs;
2679 int cpu;
2680 unsigned long max_cbs;
2681 int max_cpu;
2682 struct rcu_data *rdp;
2683
2684 if (rcu_gp_in_progress()) {
2685 show_rcu_gp_kthreads();
2686 } else {
2687 preempt_disable();
2688 rdp = this_cpu_ptr(&rcu_data);
2689 rcu_check_gp_start_stall(rdp->mynode, rdp, j);
2690 preempt_enable();
2691 }
2692 for_each_possible_cpu(cpu) {
2693 cbs = rcu_get_n_cbs_cpu(cpu);
2694 if (!cbs)
2695 continue;
2696 if (max_cpu < 0)
2697 pr_info("%s: callbacks", __func__);
2698 pr_cont(" %d: %lu", cpu, cbs);
> 2699 if (cbs <= max_cbs)
2700 continue;
2701 max_cbs = cbs;
2702 max_cpu = cpu;
2703 }
> 2704 if (max_cpu >= 0)
2705 pr_cont("\n");
2706 }
2707 EXPORT_SYMBOL_GPL(rcu_fwd_progress_check);
2708
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27084 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [rcu:dev.2018.10.03a 44/73] kernel/rcu/tree.c:2704:5: warning: 'max_cpu' may be used uninitialized in this function
2018-10-08 11:25 [rcu:dev.2018.10.03a 44/73] kernel/rcu/tree.c:2704:5: warning: 'max_cpu' may be used uninitialized in this function kbuild test robot
@ 2018-10-13 23:19 ` Paul E. McKenney
0 siblings, 0 replies; 2+ messages in thread
From: Paul E. McKenney @ 2018-10-13 23:19 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-kernel
On Mon, Oct 08, 2018 at 07:25:58PM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2018.10.03a
> head: ef44a26c84188888f97e5d7b3f8e4f8c0decd248
> commit: 813f47a94e3b61439bba90340b532f3a6319d4f5 [44/73] rcu: Print per-CPU callback counts for forward-progress failures
> config: x86_64-randconfig-x006-10081527 (attached as .config)
> compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> reproduce:
> git checkout 813f47a94e3b61439bba90340b532f3a6319d4f5
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
> http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
>
> All warnings (new ones prefixed by >>):
>
> kernel/rcu/tree.c: In function 'rcu_fwd_progress_check':
> >> kernel/rcu/tree.c:2704:5: warning: 'max_cpu' may be used uninitialized in this function [-Wmaybe-uninitialized]
> if (max_cpu >= 0)
> ^
> >> kernel/rcu/tree.c:2699:6: warning: 'max_cbs' may be used uninitialized in this function [-Wmaybe-uninitialized]
> if (cbs <= max_cbs)
> ^
Good catch! A fix is on its way.
Thanx, Paul
> vim +/max_cpu +2704 kernel/rcu/tree.c
>
> 2670
> 2671 /*
> 2672 * Do a forward-progress check for rcutorture. This is normally invoked
> 2673 * due to an OOM event. The argument "j" gives the time period during
> 2674 * which rcutorture would like progress to have been made.
> 2675 */
> 2676 void rcu_fwd_progress_check(unsigned long j)
> 2677 {
> 2678 unsigned long cbs;
> 2679 int cpu;
> 2680 unsigned long max_cbs;
> 2681 int max_cpu;
> 2682 struct rcu_data *rdp;
> 2683
> 2684 if (rcu_gp_in_progress()) {
> 2685 show_rcu_gp_kthreads();
> 2686 } else {
> 2687 preempt_disable();
> 2688 rdp = this_cpu_ptr(&rcu_data);
> 2689 rcu_check_gp_start_stall(rdp->mynode, rdp, j);
> 2690 preempt_enable();
> 2691 }
> 2692 for_each_possible_cpu(cpu) {
> 2693 cbs = rcu_get_n_cbs_cpu(cpu);
> 2694 if (!cbs)
> 2695 continue;
> 2696 if (max_cpu < 0)
> 2697 pr_info("%s: callbacks", __func__);
> 2698 pr_cont(" %d: %lu", cpu, cbs);
> > 2699 if (cbs <= max_cbs)
> 2700 continue;
> 2701 max_cbs = cbs;
> 2702 max_cpu = cpu;
> 2703 }
> > 2704 if (max_cpu >= 0)
> 2705 pr_cont("\n");
> 2706 }
> 2707 EXPORT_SYMBOL_GPL(rcu_fwd_progress_check);
> 2708
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-10-13 23:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-08 11:25 [rcu:dev.2018.10.03a 44/73] kernel/rcu/tree.c:2704:5: warning: 'max_cpu' may be used uninitialized in this function kbuild test robot
2018-10-13 23:19 ` Paul E. McKenney
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.