All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Joel Fernandes <joelagnelf@nvidia.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [jfern:rcu/next 4/4] kernel/rcu/rcutorture.c:2389:39: error: implicit declaration of function 'get_gp_wrap_count'
Date: Mon, 17 Feb 2025 00:25:45 +0800	[thread overview]
Message-ID: <202502170006.FbuyaYgD-lkp@intel.com> (raw)

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

                 reply	other threads:[~2025-02-16 16:26 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202502170006.FbuyaYgD-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=joelagnelf@nvidia.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.