On Tue, Aug 18, 2020 at 02:44:34PM +0800, kernel test robot wrote: > Hi Paul, > > First bad commit (maybe != root cause):
Stephen Rothwell beat you to this one, but yes, it is a real bug. I have queued a fix and will rebase it in later today. Thank you for your testing efforts! Thanx, Paul > tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > rcu/next > head: 398b53b5b3751726c05f14a4331b0de258c0453a > commit: a20b5bd09813bc981ab0bb01cfd7672017f8d74e [125/128] rcuperf: Change > rcuperf to rcuscale > config: x86_64-allyesconfig (attached as .config) > compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 > reproduce (this is a W=1 build): > git checkout a20b5bd09813bc981ab0bb01cfd7672017f8d74e > # save the attached .config to linux build tree > make W=1 ARCH=x86_64 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <l...@intel.com> > > All errors (new ones prefixed by >>): > > In file included from include/linux/kernel.h:15, > from kernel/rcu/rcuscale.c:13: > kernel/rcu/rcuscale.c: In function 'rcu_scale_writer': > >> kernel/rcu/rcuscale.c:430:6: error: 'perf_type' undeclared (first use in > >> this function); did you mean 'kernfs_type'? > 430 | perf_type, PERF_FLAG, me, MIN_MEAS); > | ^~~~~~~~~ > include/linux/printk.h:319:35: note: in definition of macro 'pr_alert' > 319 | printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) > | ^~~~~~~~~~~ > kernel/rcu/rcuscale.c:430:6: note: each undeclared identifier is reported > only once for each function it appears in > 430 | perf_type, PERF_FLAG, me, MIN_MEAS); > | ^~~~~~~~~ > include/linux/printk.h:319:35: note: in definition of macro 'pr_alert' > 319 | printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) > | ^~~~~~~~~~~ > >> kernel/rcu/rcuscale.c:430:17: error: 'PERF_FLAG' undeclared (first use in > >> this function) > 430 | perf_type, PERF_FLAG, me, MIN_MEAS); > | ^~~~~~~~~ > include/linux/printk.h:319:35: note: in definition of macro 'pr_alert' > 319 | printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) > | ^~~~~~~~~~~ > >> kernel/rcu/rcuscale.c:431:27: error: 'n_rcu_perf_writer_finished' > >> undeclared (first use in this function); did you mean > >> 'n_rcu_scale_writer_finished'? > 431 | if (atomic_inc_return(&n_rcu_perf_writer_finished) >= > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > | n_rcu_scale_writer_finished > > # > https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?id=a20b5bd09813bc981ab0bb01cfd7672017f8d74e > git remote add rcu > https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git > git fetch --no-tags rcu rcu/next > git checkout a20b5bd09813bc981ab0bb01cfd7672017f8d74e > vim +430 kernel/rcu/rcuscale.c > > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 353 > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 354 > /* > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 355 > * RCU scale writer kthread. Repeatedly does a grace period. > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 356 > */ > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 357 > static int > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 358 > rcu_scale_writer(void *arg) > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 359 > { > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 360 > int i = 0; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 361 > int i_max; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 362 > long me = (long)arg; > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 363 > struct rcu_head *rhp = NULL; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 364 > bool started = false, done = false, alldone = false; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 365 > u64 t; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 366 > u64 *wdp; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 367 > u64 *wdpp = writer_durations[me]; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 368 > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 369 > VERBOSE_SCALEOUT_STRING("rcu_scale_writer task started"); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 370 > WARN_ON(!wdpp); > 6b558c4c7a4ba4 kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-12 371 > set_cpus_allowed_ptr(current, cpumask_of(me % nr_cpu_ids)); > b1433395c4cc07 kernel/rcu/rcuperf.c Peter Zijlstra 2020-04-21 372 > sched_set_fifo_low(current); > df37e66bfdbb57 kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-30 373 > df37e66bfdbb57 kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-30 374 > if (holdoff) > df37e66bfdbb57 kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-30 375 > schedule_timeout_uninterruptible(holdoff * HZ); > df37e66bfdbb57 kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-30 376 > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 377) > /* > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 378) > * Wait until rcu_end_inkernel_boot() is called for normal GP tests > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 379) > * so that RCU is not always expedited for normal GP tests. > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 380) > * The system_state test is approximate, but works well in practice. > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 381) > */ > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 382) > while (!gp_exp && system_state != SYSTEM_RUNNING) > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 383) > schedule_timeout_uninterruptible(1); > 77e9752ce69f36 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-07-04 384) > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 385 > t = ktime_get_mono_fast_ns(); > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 386 > if (atomic_inc_return(&n_rcu_scale_writer_started) >= nrealwriters) { > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 387 > t_rcu_scale_writer_started = t; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 388 > if (gp_exp) { > e6e78b004fa7e0 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-08-30 389) > b_rcu_gp_test_started = > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 390 > cur_ops->exp_completed() / 2; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 391 > } else { > e6e78b004fa7e0 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-08-30 392) > b_rcu_gp_test_started = cur_ops->get_gp_seq(); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 393 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 394 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 395 > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 396 > do { > 820687a7b98a50 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-25 397 > if (writer_holdoff) > 820687a7b98a50 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-25 398 > udelay(writer_holdoff); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 399 > wdp = &wdpp[i]; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 400 > *wdp = ktime_get_mono_fast_ns(); > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 401 > if (gp_async) { > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 402 > retry: > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 403 > if (!rhp) > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 404 > rhp = kmalloc(sizeof(*rhp), GFP_KERNEL); > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 405 > if (rhp && > atomic_read(this_cpu_ptr(&n_async_inflight)) < gp_async_max) { > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 406 > atomic_inc(this_cpu_ptr(&n_async_inflight)); > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 407 > cur_ops->async(rhp, rcu_scale_async_cb); > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 408 > rhp = NULL; > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 409 > } else if (!kthread_should_stop()) { > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 410 > cur_ops->gp_barrier(); > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 411 > goto retry; > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 412 > } else { > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 413 > kfree(rhp); /* Because we are stopping. */ > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 414 > } > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 415 > } else if (gp_exp) { > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 416 > cur_ops->exp_sync(); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 417 > } else { > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 418 > cur_ops->sync(); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 419 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 420 > t = ktime_get_mono_fast_ns(); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 421 > *wdp = t - *wdp; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 422 > i_max = i; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 423 > if (!started && > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 424 > atomic_read(&n_rcu_scale_writer_started) >= nrealwriters) > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 425 > started = true; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 426 > if (!done && i >= MIN_MEAS) { > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 427 > done = true; > b1433395c4cc07 kernel/rcu/rcuperf.c Peter Zijlstra 2020-04-21 428 > sched_set_normal(current, 0); > a56fefa2605cf8 kernel/rcu/rcuperf.c SeongJae Park 2016-08-21 429 > pr_alert("%s%s rcu_perf_writer %ld has %d > measurements\n", > a56fefa2605cf8 kernel/rcu/rcuperf.c SeongJae Park 2016-08-21 @430 > perf_type, PERF_FLAG, me, MIN_MEAS); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 @431 > if (atomic_inc_return(&n_rcu_perf_writer_finished) >= > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 432 > nrealwriters) { > 620316e52a9238 kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-30 433 > schedule_timeout_interruptible(10); > ac2bb275e8e5ab kernel/rcu/rcuperf.c Paul E. McKenney 2016-01-29 434 > rcu_ftrace_dump(DUMP_ALL); > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 435 > SCALEOUT_STRING("Test complete"); > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 436 > t_rcu_scale_writer_finished = t; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 437 > if (gp_exp) { > e6e78b004fa7e0 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-08-30 438) > b_rcu_gp_test_finished = > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 439 > cur_ops->exp_completed() / 2; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 440 > } else { > e6e78b004fa7e0 kernel/rcu/rcuperf.c Joel Fernandes (Google 2019-08-30 441) > b_rcu_gp_test_finished = > 17ef2fe97c8c8e kernel/rcu/rcuperf.c Paul E. McKenney 2018-04-27 442 > cur_ops->get_gp_seq(); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 443 > } > e6fb1fc1085e5b kernel/rcu/rcuperf.c Artem Savkov 2016-02-07 444 > if (shutdown) { > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 445 > smp_mb(); /* Assign before wake. */ > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 446 > wake_up(&shutdown_wq); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 447 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 448 > } > e6fb1fc1085e5b kernel/rcu/rcuperf.c Artem Savkov 2016-02-07 449 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 450 > if (done && !alldone && > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 451 > atomic_read(&n_rcu_scale_writer_finished) >= nrealwriters) > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 452 > alldone = true; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 453 > if (started && !alldone && i < MAX_MEAS - 1) > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 454 > i++; > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 455 > rcu_scale_wait_shutdown(); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 456 > } while (!torture_must_stop()); > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 457 > if (gp_async) { > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 458 > cur_ops->gp_barrier(); > 881ed593a323c8 kernel/rcu/rcuperf.c Paul E. McKenney 2017-04-17 459 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 460 > writer_n_durations[me] = i_max; > a20b5bd09813bc kernel/rcu/rcuscale.c Paul E. McKenney 2020-08-11 461 > torture_kthread_stopping("rcu_scale_writer"); > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 462 > return 0; > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 463 > } > 8704baab9bc848 kernel/rcu/rcuperf.c Paul E. McKenney 2015-12-31 464 > > :::::: The code at line 430 was first introduced by commit > :::::: a56fefa2605cf8e125ef09451487f30336128028 rcuperf: Consistently insert > space between flag and message > > :::::: TO: SeongJae Park <sj38.p...@gmail.com> > :::::: CC: Paul E. McKenney <paul...@linux.vnet.ibm.com> > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org