* [jfern:rcu/next 4/4] kernel/rcu/rcutorture.c:2389:39: error: implicit declaration of function 'get_gp_wrap_count'
@ 2025-02-16 16:25 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-16 16:25 UTC (permalink / raw)
To: Joel Fernandes; +Cc: oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git rcu/next
head: 984c47eeb7728829901b33462baae2771af80ea0
commit: 984c47eeb7728829901b33462baae2771af80ea0 [4/4] TEST: force gpwraps
config: nios2-randconfig-002-20250216 (https://download.01.org/0day-ci/archive/20250217/202502170006.FbuyaYgD-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250217/202502170006.FbuyaYgD-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502170006.FbuyaYgD-lkp@intel.com/
All errors (new ones prefixed by >>):
kernel/rcu/rcutorture.c: In function 'rcu_read_delay':
kernel/rcu/rcutorture.c:450:28: warning: variable 'ts' set but not used [-Wunused-but-set-variable]
450 | unsigned long long ts;
| ^~
kernel/rcu/rcutorture.c:447:23: warning: variable 'completed' set but not used [-Wunused-but-set-variable]
447 | unsigned long completed;
| ^~~~~~~~~
kernel/rcu/rcutorture.c:446:23: warning: variable 'started' set but not used [-Wunused-but-set-variable]
446 | unsigned long started;
| ^~~~~~~
kernel/rcu/rcutorture.c: In function 'rcu_torture_one_read':
kernel/rcu/rcutorture.c:2169:28: warning: variable 'ts' set but not used [-Wunused-but-set-variable]
2169 | unsigned long long ts;
| ^~
kernel/rcu/rcutorture.c: In function 'rcu_torture_stats_print':
>> kernel/rcu/rcutorture.c:2389:39: error: implicit declaration of function 'get_gp_wrap_count' [-Wimplicit-function-declaration]
2389 | total_gpwrap_count += get_gp_wrap_count(cpu);
| ^~~~~~~~~~~~~~~~~
vim +/get_gp_wrap_count +2389 kernel/rcu/rcutorture.c
2362
2363 /*
2364 * Print torture statistics. Caller must ensure that there is only
2365 * one call to this function at a given time!!! This is normally
2366 * accomplished by relying on the module system to only have one copy
2367 * of the module loaded, and then by giving the rcu_torture_stats
2368 * kthread full control (or the init/cleanup functions when rcu_torture_stats
2369 * thread is not running).
2370 */
2371 static void
2372 rcu_torture_stats_print(void)
2373 {
2374 int cpu;
2375 int i;
2376 long pipesummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 };
2377 long batchsummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 };
2378 long total_gpwrap_count = 0;
2379 struct rcu_torture *rtcp;
2380 static unsigned long rtcv_snap = ULONG_MAX;
2381 static bool splatted;
2382 struct task_struct *wtp;
2383
2384 for_each_possible_cpu(cpu) {
2385 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
2386 pipesummary[i] += READ_ONCE(per_cpu(rcu_torture_count, cpu)[i]);
2387 batchsummary[i] += READ_ONCE(per_cpu(rcu_torture_batch, cpu)[i]);
2388 }
> 2389 total_gpwrap_count += get_gp_wrap_count(cpu);
2390 }
2391 for (i = RCU_TORTURE_PIPE_LEN; i >= 0; i--) {
2392 if (pipesummary[i] != 0)
2393 break;
2394 }
2395
2396 pr_alert("%s%s total_gpwrap_count: %ld", torture_type, TORTURE_FLAG, total_gpwrap_count);
2397 rtcp = rcu_access_pointer(rcu_torture_current);
2398 pr_cont("rtc: %p %s: %lu tfle: %d rta: %d rtaf: %d rtf: %d ",
2399 rtcp,
2400 rtcp && !rcu_stall_is_suppressed_at_boot() ? "ver" : "VER",
2401 rcu_torture_current_version,
2402 list_empty(&rcu_torture_freelist),
2403 atomic_read(&n_rcu_torture_alloc),
2404 atomic_read(&n_rcu_torture_alloc_fail),
2405 atomic_read(&n_rcu_torture_free));
2406 pr_cont("rtmbe: %d rtmbkf: %d/%d rtbe: %ld rtbke: %ld ",
2407 atomic_read(&n_rcu_torture_mberror),
2408 atomic_read(&n_rcu_torture_mbchk_fail), atomic_read(&n_rcu_torture_mbchk_tries),
2409 n_rcu_torture_barrier_error,
2410 n_rcu_torture_boost_ktrerror);
2411 pr_cont("rtbf: %ld rtb: %ld nt: %ld ",
2412 n_rcu_torture_boost_failure,
2413 n_rcu_torture_boosts,
2414 atomic_long_read(&n_rcu_torture_timers));
2415 torture_onoff_stats();
2416 pr_cont("barrier: %ld/%ld:%ld ",
2417 data_race(n_barrier_successes),
2418 data_race(n_barrier_attempts),
2419 data_race(n_rcu_torture_barrier_error));
2420 pr_cont("read-exits: %ld ", data_race(n_read_exits)); // Statistic.
2421 pr_cont("nocb-toggles: %ld:%ld\n",
2422 atomic_long_read(&n_nocb_offload), atomic_long_read(&n_nocb_deoffload));
2423
2424 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
2425 if (atomic_read(&n_rcu_torture_mberror) ||
2426 atomic_read(&n_rcu_torture_mbchk_fail) ||
2427 n_rcu_torture_barrier_error || n_rcu_torture_boost_ktrerror ||
2428 n_rcu_torture_boost_failure || i > 1) {
2429 pr_cont("%s", "!!! ");
2430 atomic_inc(&n_rcu_torture_error);
2431 WARN_ON_ONCE(atomic_read(&n_rcu_torture_mberror));
2432 WARN_ON_ONCE(atomic_read(&n_rcu_torture_mbchk_fail));
2433 WARN_ON_ONCE(n_rcu_torture_barrier_error); // rcu_barrier()
2434 WARN_ON_ONCE(n_rcu_torture_boost_ktrerror); // no boost kthread
2435 WARN_ON_ONCE(n_rcu_torture_boost_failure); // boost failed (TIMER_SOFTIRQ RT prio?)
2436 WARN_ON_ONCE(i > 1); // Too-short grace period
2437 }
2438 pr_cont("Reader Pipe: ");
2439 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
2440 pr_cont(" %ld", pipesummary[i]);
2441 pr_cont("\n");
2442
2443 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
2444 pr_cont("Reader Batch: ");
2445 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
2446 pr_cont(" %ld", batchsummary[i]);
2447 pr_cont("\n");
2448
2449 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
2450 pr_cont("Free-Block Circulation: ");
2451 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
2452 pr_cont(" %d", atomic_read(&rcu_torture_wcount[i]));
2453 }
2454 pr_cont("\n");
2455
2456 if (cur_ops->stats)
2457 cur_ops->stats();
2458 if (rtcv_snap == rcu_torture_current_version &&
2459 rcu_access_pointer(rcu_torture_current) &&
2460 !rcu_stall_is_suppressed()) {
2461 int __maybe_unused flags = 0;
2462 unsigned long __maybe_unused gp_seq = 0;
2463
2464 if (cur_ops->get_gp_data)
2465 cur_ops->get_gp_data(&flags, &gp_seq);
2466 wtp = READ_ONCE(writer_task);
2467 pr_alert("??? Writer stall state %s(%d) g%lu f%#x ->state %#x cpu %d\n",
2468 rcu_torture_writer_state_getname(),
2469 rcu_torture_writer_state, gp_seq, flags,
2470 wtp == NULL ? ~0U : wtp->__state,
2471 wtp == NULL ? -1 : (int)task_cpu(wtp));
2472 if (!splatted && wtp) {
2473 sched_show_task(wtp);
2474 splatted = true;
2475 }
2476 if (cur_ops->gp_kthread_dbg)
2477 cur_ops->gp_kthread_dbg();
2478 rcu_ftrace_dump(DUMP_ALL);
2479 }
2480 rtcv_snap = rcu_torture_current_version;
2481 }
2482
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-02-16 16:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-16 16:25 [jfern:rcu/next 4/4] kernel/rcu/rcutorture.c:2389:39: error: implicit declaration of function 'get_gp_wrap_count' kernel test robot
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.