diff mbox series

[v2] kernel/time: move timer sysctls to its own file

Message ID 20220128085106.27031-1-tangmeng@uniontech.com (mailing list archive)
State New, archived
Headers show
Series [v2] kernel/time: move timer sysctls to its own file | expand

Commit Message

Meng Tang Jan. 28, 2022, 8:51 a.m. UTC
This moves the kernel/timer/timer.c respective sysctls to its own file.

Signed-off-by: tangmeng <tangmeng@uniontech.com>
---
 include/linux/timer.h |  4 ----
 kernel/sysctl.c       | 11 -----------
 kernel/time/timer.c   | 27 +++++++++++++++++++++++++--
 3 files changed, 25 insertions(+), 17 deletions(-)

Comments

kernel test robot Jan. 28, 2022, 9:03 p.m. UTC | #1
Hi tangmeng,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/timers/core]
[also build test ERROR on linus/master kees/for-next/pstore v5.17-rc1 next-20220128]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/tangmeng/kernel-time-move-timer-sysctls-to-its-own-file/20220128-165225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 35e13e9da9afbce13c1d36465504ece4e65f24fe
config: arm64-randconfig-r026-20220127 (https://download.01.org/0day-ci/archive/20220129/202201290325.Jyor2i8O-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/8bd44d33085f8ab50523016cbdb0c918dc4b4f3c
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review tangmeng/kernel-time-move-timer-sysctls-to-its-own-file/20220128-165225
        git checkout 8bd44d33085f8ab50523016cbdb0c918dc4b4f3c
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash kernel/time/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   kernel/time/timer.c: In function 'timer_sysctl_init':
>> kernel/time/timer.c:283:9: error: implicit declaration of function 'register_sysctl_init'; did you mean 'timer_sysctl_init'? [-Werror=implicit-function-declaration]
     283 |         register_sysctl_init("kerneli/timer", timer_sysctl);
         |         ^~~~~~~~~~~~~~~~~~~~
         |         timer_sysctl_init
   cc1: some warnings being treated as errors


vim +283 kernel/time/timer.c

   280	
   281	static int __init timer_sysctl_init(void)
   282	{
 > 283		register_sysctl_init("kerneli/timer", timer_sysctl);
   284		return 0;
   285	}
   286	#else
   287	#define timer_sysctl_init() do { } while (0)
   288	#endif
   289	static inline bool is_timers_nohz_active(void)
   290	{
   291		return static_branch_unlikely(&timers_nohz_active);
   292	}
   293	#else
   294	static inline bool is_timers_nohz_active(void) { return false; }
   295	#endif /* NO_HZ_COMMON */
   296	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Luis Chamberlain Feb. 2, 2022, 2:40 a.m. UTC | #2
These complaints are using and assuming and older kernel.

 Luis

On Sat, Jan 29, 2022 at 05:03:38AM +0800, kernel test robot wrote:
> Hi tangmeng,
> 
> Thank you for the patch! Yet something to improve:
> 
> [auto build test ERROR on tip/timers/core]
> [also build test ERROR on linus/master kees/for-next/pstore v5.17-rc1 next-20220128]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
> 
> url:    https://github.com/0day-ci/linux/commits/tangmeng/kernel-time-move-timer-sysctls-to-its-own-file/20220128-165225
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 35e13e9da9afbce13c1d36465504ece4e65f24fe
> config: arm64-randconfig-r026-20220127 (https://download.01.org/0day-ci/archive/20220129/202201290325.Jyor2i8O-lkp@intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/8bd44d33085f8ab50523016cbdb0c918dc4b4f3c
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review tangmeng/kernel-time-move-timer-sysctls-to-its-own-file/20220128-165225
>         git checkout 8bd44d33085f8ab50523016cbdb0c918dc4b4f3c
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash kernel/time/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>    kernel/time/timer.c: In function 'timer_sysctl_init':
> >> kernel/time/timer.c:283:9: error: implicit declaration of function 'register_sysctl_init'; did you mean 'timer_sysctl_init'? [-Werror=implicit-function-declaration]
>      283 |         register_sysctl_init("kerneli/timer", timer_sysctl);
>          |         ^~~~~~~~~~~~~~~~~~~~
>          |         timer_sysctl_init
>    cc1: some warnings being treated as errors
> 
> 
> vim +283 kernel/time/timer.c
> 
>    280	
>    281	static int __init timer_sysctl_init(void)
>    282	{
>  > 283		register_sysctl_init("kerneli/timer", timer_sysctl);
>    284		return 0;
>    285	}
>    286	#else
>    287	#define timer_sysctl_init() do { } while (0)
>    288	#endif
>    289	static inline bool is_timers_nohz_active(void)
>    290	{
>    291		return static_branch_unlikely(&timers_nohz_active);
>    292	}
>    293	#else
>    294	static inline bool is_timers_nohz_active(void) { return false; }
>    295	#endif /* NO_HZ_COMMON */
>    296	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Chen, Rong A Feb. 7, 2022, 6:41 a.m. UTC | #3
Hi Luis,

Thanks for the feedback, we'll take a look.

Best Regards,
Rong Chen

On 2/2/2022 10:40 AM, Luis Chamberlain wrote:
> These complaints are using and assuming and older kernel.
> 
>   Luis
> 
> On Sat, Jan 29, 2022 at 05:03:38AM +0800, kernel test robot wrote:
>> Hi tangmeng,
>>
>> Thank you for the patch! Yet something to improve:
>>
>> [auto build test ERROR on tip/timers/core]
>> [also build test ERROR on linus/master kees/for-next/pstore v5.17-rc1 next-20220128]
>> [If your patch is applied to the wrong git tree, kindly drop us a note.
>> And when submitting patch, we suggest to use '--base' as documented in
>> https://git-scm.com/docs/git-format-patch]
>>
>> url:    https://github.com/0day-ci/linux/commits/tangmeng/kernel-time-move-timer-sysctls-to-its-own-file/20220128-165225
>> base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 35e13e9da9afbce13c1d36465504ece4e65f24fe
>> config: arm64-randconfig-r026-20220127 (https://download.01.org/0day-ci/archive/20220129/202201290325.Jyor2i8O-lkp@intel.com/config)
>> compiler: aarch64-linux-gcc (GCC) 11.2.0
>> reproduce (this is a W=1 build):
>>          wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>          chmod +x ~/bin/make.cross
>>          # https://github.com/0day-ci/linux/commit/8bd44d33085f8ab50523016cbdb0c918dc4b4f3c
>>          git remote add linux-review https://github.com/0day-ci/linux
>>          git fetch --no-tags linux-review tangmeng/kernel-time-move-timer-sysctls-to-its-own-file/20220128-165225
>>          git checkout 8bd44d33085f8ab50523016cbdb0c918dc4b4f3c
>>          # save the config file to linux build tree
>>          mkdir build_dir
>>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash kernel/time/
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All errors (new ones prefixed by >>):
>>
>>     kernel/time/timer.c: In function 'timer_sysctl_init':
>>>> kernel/time/timer.c:283:9: error: implicit declaration of function 'register_sysctl_init'; did you mean 'timer_sysctl_init'? [-Werror=implicit-function-declaration]
>>       283 |         register_sysctl_init("kerneli/timer", timer_sysctl);
>>           |         ^~~~~~~~~~~~~~~~~~~~
>>           |         timer_sysctl_init
>>     cc1: some warnings being treated as errors
>>
>>
>> vim +283 kernel/time/timer.c
>>
>>     280	
>>     281	static int __init timer_sysctl_init(void)
>>     282	{
>>   > 283		register_sysctl_init("kerneli/timer", timer_sysctl);
>>     284		return 0;
>>     285	}
>>     286	#else
>>     287	#define timer_sysctl_init() do { } while (0)
>>     288	#endif
>>     289	static inline bool is_timers_nohz_active(void)
>>     290	{
>>     291		return static_branch_unlikely(&timers_nohz_active);
>>     292	}
>>     293	#else
>>     294	static inline bool is_timers_nohz_active(void) { return false; }
>>     295	#endif /* NO_HZ_COMMON */
>>     296	
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> _______________________________________________
> kbuild-all mailing list -- kbuild-all@lists.01.org
> To unsubscribe send an email to kbuild-all-leave@lists.01.org
>
Luis Chamberlain Feb. 7, 2022, 10:17 p.m. UTC | #4
On Mon, Feb 07, 2022 at 02:41:08PM +0800, Chen, Rong A wrote:
> Hi Luis,
> 
> Thanks for the feedback, we'll take a look.

Sorry for the noise but it could also have been an ifdef is needed when
proc sysctl is disabled. In either case tangmeng said he'd look into it.

 Luis
diff mbox series

Patch

diff --git a/include/linux/timer.h b/include/linux/timer.h
index fda13c9d1256..793b6b7c5a3e 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -198,10 +198,6 @@  extern enum hrtimer_restart it_real_fn(struct hrtimer *);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON)
 struct ctl_table;
-
-extern unsigned int sysctl_timer_migration;
-int timer_migration_handler(struct ctl_table *table, int write,
-			    void *buffer, size_t *lenp, loff_t *ppos);
 #endif
 
 unsigned long __round_jiffies(unsigned long j, int cpu);
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 5ae443b2882e..d6d133423e5d 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -2292,17 +2292,6 @@  static struct ctl_table kern_table[] = {
 		.extra1		= SYSCTL_ZERO,
 		.extra2		= SYSCTL_ONE,
 	},
-#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON)
-	{
-		.procname	= "timer_migration",
-		.data		= &sysctl_timer_migration,
-		.maxlen		= sizeof(unsigned int),
-		.mode		= 0644,
-		.proc_handler	= timer_migration_handler,
-		.extra1		= SYSCTL_ZERO,
-		.extra2		= SYSCTL_ONE,
-	},
-#endif
 #ifdef CONFIG_BPF_SYSCALL
 	{
 		.procname	= "unprivileged_bpf_disabled",
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 85f1021ad459..ee462673f638 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -223,7 +223,7 @@  static void timer_update_keys(struct work_struct *work);
 static DECLARE_WORK(timer_update_work, timer_update_keys);
 
 #ifdef CONFIG_SMP
-unsigned int sysctl_timer_migration = 1;
+static unsigned int sysctl_timer_migration = 1;
 
 DEFINE_STATIC_KEY_FALSE(timers_migration_enabled);
 
@@ -251,7 +251,8 @@  void timers_update_nohz(void)
 	schedule_work(&timer_update_work);
 }
 
-int timer_migration_handler(struct ctl_table *table, int write,
+#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON)
+static int timer_migration_handler(struct ctl_table *table, int write,
 			    void *buffer, size_t *lenp, loff_t *ppos)
 {
 	int ret;
@@ -264,6 +265,27 @@  int timer_migration_handler(struct ctl_table *table, int write,
 	return ret;
 }
 
+static struct ctl_table timer_sysctl[] = {
+	{
+		.procname       = "timer_migration",
+		.data           = &sysctl_timer_migration,
+		.maxlen         = sizeof(unsigned int),
+		.mode           = 0644,
+		.proc_handler   = timer_migration_handler,
+		.extra1         = SYSCTL_ZERO,
+		.extra2         = SYSCTL_ONE,
+	},
+	{}
+};
+
+static int __init timer_sysctl_init(void)
+{
+	register_sysctl_init("kerneli/timer", timer_sysctl);
+	return 0;
+}
+#else
+#define timer_sysctl_init() do { } while (0)
+#endif
 static inline bool is_timers_nohz_active(void)
 {
 	return static_branch_unlikely(&timers_nohz_active);
@@ -2022,6 +2044,7 @@  void __init init_timers(void)
 	init_timer_cpus();
 	posix_cputimers_init_work();
 	open_softirq(TIMER_SOFTIRQ, run_timer_softirq);
+	timer_sysctl_init();
 }
 
 /**