From: kernel test robot <lkp@intel.com>
To: "Joel Fernandes (Google)" <joel@joelfernandes.org>
Cc: kbuild-all@lists.01.org, Ammar Faizi <ammarfaizi2@gnuweeb.org>,
GNU/Weeb Mailing List <gwml@vger.gnuweeb.org>,
linux-kernel@vger.kernel.org,
"Paul E. McKenney" <paulmck@kernel.org>
Subject: [ammarfaizi2-block:paulmck/linux-rcu/joel.2022.07.14a 25/27] kernel/rcu/rcuscale.c:819:28: error: implicit declaration of function 'rcu_lazy_get_jiffies_till_flush'
Date: Fri, 15 Jul 2022 10:06:50 +0800 [thread overview]
Message-ID: <202207150959.APaZTo2Q-lkp@intel.com> (raw)
tree: https://github.com/ammarfaizi2/linux-block paulmck/linux-rcu/joel.2022.07.14a
head: 37d0460c40e7e364151894260d483ade68b1de34
commit: 39e5f05326df757fa3be4617773fafb0454d9ec7 [25/27] rcuscale: Add laziness and kfree tests
config: x86_64-randconfig-a013 (https://download.01.org/0day-ci/archive/20220715/202207150959.APaZTo2Q-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/ammarfaizi2/linux-block/commit/39e5f05326df757fa3be4617773fafb0454d9ec7
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block paulmck/linux-rcu/joel.2022.07.14a
git checkout 39e5f05326df757fa3be4617773fafb0454d9ec7
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash kernel/rcu/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
kernel/rcu/rcuscale.c: In function 'kfree_scale_init':
>> kernel/rcu/rcuscale.c:819:28: error: implicit declaration of function 'rcu_lazy_get_jiffies_till_flush' [-Werror=implicit-function-declaration]
819 | orig_jif = rcu_lazy_get_jiffies_till_flush();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/rcu/rcuscale.c:822:17: error: implicit declaration of function 'rcu_lazy_set_jiffies_till_flush' [-Werror=implicit-function-declaration]
822 | rcu_lazy_set_jiffies_till_flush(2 * HZ);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/rcu_lazy_get_jiffies_till_flush +819 kernel/rcu/rcuscale.c
796
797 static int __init
798 kfree_scale_init(void)
799 {
800 long i;
801 int firsterr = 0;
802 unsigned long orig_jif, jif_start;
803
804 // If lazy-rcu based kfree'ing is requested, then for kernels that
805 // support it, force all call_rcu() to call_rcu_lazy() so that non-lazy
806 // CBs do not remove laziness of the lazy ones (since the test tries to
807 // stress call_rcu_lazy() for OOM).
808 //
809 // Also, do a quick self-test to ensure laziness is as much as
810 // expected.
811 if (kfree_rcu_by_lazy && !IS_ENABLED(CONFIG_RCU_LAZY)) {
812 pr_alert("CONFIG_RCU_LAZY is disabled, falling back to kfree_rcu() "
813 "for delayed RCU kfree'ing\n");
814 kfree_rcu_by_lazy = 0;
815 }
816
817 if (kfree_rcu_by_lazy) {
818 /* do a test to check the timeout. */
> 819 orig_jif = rcu_lazy_get_jiffies_till_flush();
820
821 rcu_force_call_rcu_to_lazy(true);
> 822 rcu_lazy_set_jiffies_till_flush(2 * HZ);
823 rcu_barrier();
824
825 jif_start = jiffies;
826 jiffies_at_lazy_cb = 0;
827 call_rcu_lazy(&lazy_test1_rh, call_rcu_lazy_test1);
828
829 smp_cond_load_relaxed(&rcu_lazy_test1_cb_called, VAL == 1);
830
831 rcu_lazy_set_jiffies_till_flush(orig_jif);
832
833 if (WARN_ON_ONCE(jiffies_at_lazy_cb - jif_start < 2 * HZ)) {
834 pr_alert("ERROR: Lazy CBs are not being lazy as expected!\n");
835 WARN_ON_ONCE(1);
836 return -1;
837 }
838
839 if (WARN_ON_ONCE(jiffies_at_lazy_cb - jif_start > 3 * HZ)) {
840 pr_alert("ERROR: Lazy CBs are being too lazy!\n");
841 WARN_ON_ONCE(1);
842 return -1;
843 }
844 }
845
846 kfree_nrealthreads = compute_real(kfree_nthreads);
847 /* Start up the kthreads. */
848 if (shutdown) {
849 init_waitqueue_head(&shutdown_wq);
850 firsterr = torture_create_kthread(kfree_scale_shutdown, NULL,
851 shutdown_task);
852 if (torture_init_error(firsterr))
853 goto unwind;
854 schedule_timeout_uninterruptible(1);
855 }
856
857 pr_alert("kfree object size=%zu, kfree_rcu_by_lazy=%d\n",
858 kfree_mult * sizeof(struct kfree_obj),
859 kfree_rcu_by_lazy);
860
861 kfree_reader_tasks = kcalloc(kfree_nrealthreads, sizeof(kfree_reader_tasks[0]),
862 GFP_KERNEL);
863 if (kfree_reader_tasks == NULL) {
864 firsterr = -ENOMEM;
865 goto unwind;
866 }
867
868 for (i = 0; i < kfree_nrealthreads; i++) {
869 firsterr = torture_create_kthread(kfree_scale_thread, (void *)i,
870 kfree_reader_tasks[i]);
871 if (torture_init_error(firsterr))
872 goto unwind;
873 }
874
875 while (atomic_read(&n_kfree_scale_thread_started) < kfree_nrealthreads)
876 schedule_timeout_uninterruptible(1);
877
878 torture_init_end();
879 return 0;
880
881 unwind:
882 torture_init_end();
883 kfree_scale_cleanup();
884 return firsterr;
885 }
886
--
0-DAY CI Kernel Test Service
https://01.org/lkp
reply other threads:[~2022-07-15 2:07 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=202207150959.APaZTo2Q-lkp@intel.com \
--to=lkp@intel.com \
--cc=ammarfaizi2@gnuweeb.org \
--cc=gwml@vger.gnuweeb.org \
--cc=joel@joelfernandes.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
/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.