Hi Xiongfeng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 27e5d43e49e85d816bd05ffe8672ceea631a07e4 commit: 5f20541757730418065c3ae77dfdbcde3f523394 [2850/15358] blk-mq: avoid housekeeping CPUs scheduling a worker on a non-housekeeping CPU config: loongarch-randconfig-002-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290700.Xq3inTZy-lkp@i...) compiler: loongarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290700.Xq3inTZy-lkp@i...)
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/202410290700.Xq3inTZy-lkp@intel.com/
All errors (new ones prefixed by >>):
54 | EXPORT_SYMBOL_GPL(housekeeping_any_cpu); | ^~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:39:5: note: previous definition of 'housekeeping_any_cpu' with type 'int(enum hk_type)' 39 | int housekeeping_any_cpu(enum hk_type type) | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:63:19: error: non-static declaration of 'housekeeping_cpumask' follows static declaration 63 | EXPORT_SYMBOL_GPL(housekeeping_cpumask); | ^~~~~~~~~~~~~~~~~~~~ include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL' 74 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL' 87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL") | ^~~~~~~~~~~~~~ kernel/sched/isolation.c:63:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 63 | EXPORT_SYMBOL_GPL(housekeeping_cpumask); | ^~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:56:23: note: previous definition of 'housekeeping_cpumask' with type 'const struct cpumask *(enum hk_type)' 56 | const struct cpumask *housekeeping_cpumask(enum hk_type type) | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:71:19: error: non-static declaration of 'housekeeping_affine' follows static declaration 71 | EXPORT_SYMBOL_GPL(housekeeping_affine); | ^~~~~~~~~~~~~~~~~~~ include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL' 74 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL' 87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL") | ^~~~~~~~~~~~~~ kernel/sched/isolation.c:71:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 71 | EXPORT_SYMBOL_GPL(housekeeping_affine); | ^~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:65:6: note: previous definition of 'housekeeping_affine' with type 'void(struct task_struct *, enum hk_type)' 65 | void housekeeping_affine(struct task_struct *t, enum hk_type type) | ^~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:80:19: error: non-static declaration of 'housekeeping_test_cpu' follows static declaration 80 | EXPORT_SYMBOL_GPL(housekeeping_test_cpu); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL' 74 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL' 87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL") | ^~~~~~~~~~~~~~ kernel/sched/isolation.c:80:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' 80 | EXPORT_SYMBOL_GPL(housekeeping_test_cpu); | ^~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:73:6: note: previous definition of 'housekeeping_test_cpu' with type 'bool(int, enum hk_type)' {aka '_Bool(int, enum hk_type)'} 73 | bool housekeeping_test_cpu(int cpu, enum hk_type type) | ^~~~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:100:20: error: invalid storage class for function 'housekeeping_setup_type' 100 | static void __init housekeeping_setup_type(enum hk_type type, | ^~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:109:19: error: invalid storage class for function 'housekeeping_setup' 109 | static int __init housekeeping_setup(char *str, unsigned long flags) | ^~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:180:19: error: invalid storage class for function 'housekeeping_nohz_full_setup' 180 | static int __init housekeeping_nohz_full_setup(char *str) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/printk.h:6, from include/linux/kernel.h:30: kernel/sched/isolation.c:189:23: error: initializer element is not constant 189 | __setup("nohz_full=", housekeeping_nohz_full_setup); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/isolation.c:189:1: note: in expansion of macro '__setup' 189 | __setup("nohz_full=", housekeeping_nohz_full_setup); | ^~~~~~~ kernel/sched/isolation.c:189:23: note: (near initialization for '__setup_housekeeping_nohz_full_setup.setup_func') 189 | __setup("nohz_full=", housekeeping_nohz_full_setup); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/isolation.c:189:1: note: in expansion of macro '__setup' 189 | __setup("nohz_full=", housekeeping_nohz_full_setup); | ^~~~~~~ kernel/sched/isolation.c:191:19: error: invalid storage class for function 'housekeeping_isolcpus_setup' 191 | static int __init housekeeping_isolcpus_setup(char *str) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:241:22: error: initializer element is not constant 241 | __setup("isolcpus=", housekeeping_isolcpus_setup); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/isolation.c:241:1: note: in expansion of macro '__setup' 241 | __setup("isolcpus=", housekeeping_isolcpus_setup); | ^~~~~~~ kernel/sched/isolation.c:241:22: note: (near initialization for '__setup_housekeeping_isolcpus_setup.setup_func') 241 | __setup("isolcpus=", housekeeping_isolcpus_setup); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/isolation.c:241:1: note: in expansion of macro '__setup' 241 | __setup("isolcpus=", housekeeping_isolcpus_setup); | ^~~~~~~
kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
244 | static int __init enhanced_isolcpus_setup(char *str) | ^~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/isolation.c:249:30: error: initializer element is not constant 249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup); | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/isolation.c:249:1: note: in expansion of macro '__setup' 249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup); | ^~~~~~~ kernel/sched/isolation.c:249:30: note: (near initialization for '__setup_enhanced_isolcpus_setup.setup_func') 249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup); | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/isolation.c:249:1: note: in expansion of macro '__setup' 249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup); | ^~~~~~~ In file included from kernel/sched/build_utility.c:109: kernel/sched/autogroup.c:7:28: error: section attribute cannot be specified for local variables 7 | unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:47:20: error: invalid storage class for function 'autogroup_destroy' 47 | static inline void autogroup_destroy(struct kref *kref) | ^~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:60:20: error: invalid storage class for function 'autogroup_kref_put' 60 | static inline void autogroup_kref_put(struct autogroup *ag) | ^~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:65:33: error: invalid storage class for function 'autogroup_kref_get' 65 | static inline struct autogroup *autogroup_kref_get(struct autogroup *ag) | ^~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:71:33: error: invalid storage class for function 'autogroup_task_get' 71 | static inline struct autogroup *autogroup_task_get(struct task_struct *p) | ^~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:85:33: error: invalid storage class for function 'autogroup_create' 85 | static inline struct autogroup *autogroup_create(void) | ^~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:158:1: error: invalid storage class for function 'autogroup_move_group' 158 | autogroup_move_group(struct task_struct *p, struct autogroup *ag) | ^~~~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:202:15: error: non-static declaration of 'sched_autogroup_create_attach' follows static declaration 202 | EXPORT_SYMBOL(sched_autogroup_create_attach); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL' 74 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:86:41: note: in expansion of macro '_EXPORT_SYMBOL' 86 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "") | ^~~~~~~~~~~~~~ kernel/sched/autogroup.c:202:1: note: in expansion of macro 'EXPORT_SYMBOL' 202 | EXPORT_SYMBOL(sched_autogroup_create_attach); | ^~~~~~~~~~~~~ kernel/sched/autogroup.c:193:6: note: previous definition of 'sched_autogroup_create_attach' with type 'void(struct task_struct *)' 193 | void sched_autogroup_create_attach(struct task_struct *p) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:209:15: error: non-static declaration of 'sched_autogroup_detach' follows static declaration 209 | EXPORT_SYMBOL(sched_autogroup_detach); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL' 74 | extern typeof(sym) sym; \ | ^~~ include/linux/export.h:86:41: note: in expansion of macro '_EXPORT_SYMBOL' 86 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "") | ^~~~~~~~~~~~~~ kernel/sched/autogroup.c:209:1: note: in expansion of macro 'EXPORT_SYMBOL' 209 | EXPORT_SYMBOL(sched_autogroup_detach); | ^~~~~~~~~~~~~ kernel/sched/autogroup.c:205:6: note: previous definition of 'sched_autogroup_detach' with type 'void(struct task_struct *)' 205 | void sched_autogroup_detach(struct task_struct *p) | ^~~~~~~~~~~~~~~~~~~~~~ kernel/sched/autogroup.c:221:19: error: invalid storage class for function 'setup_autogroup' 221 | static int __init setup_autogroup(char *str) | ^~~~~~~~~~~~~~~ kernel/sched/autogroup.c:227:24: error: initializer element is not constant 227 | __setup("noautogroup", setup_autogroup); | ^~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/autogroup.c:227:1: note: in expansion of macro '__setup' 227 | __setup("noautogroup", setup_autogroup); | ^~~~~~~ kernel/sched/autogroup.c:227:24: note: (near initialization for '__setup_setup_autogroup.setup_func') 227 | __setup("noautogroup", setup_autogroup); | ^~~~~~~~~~~~~~~ include/linux/init.h:343:46: note: in definition of macro '__setup_param' 343 | = { __setup_str_##unique_id, fn, early } | ^~ kernel/sched/autogroup.c:227:1: note: in expansion of macro '__setup' 227 | __setup("noautogroup", setup_autogroup); | ^~~~~~~ kernel/sched/build_utility.c:110: error: expected declaration or statement at end of input 110 | #endif kernel/sched/psi.c: At top level: kernel/sched/psi.c:178:13: warning: 'psi_avgs_work' used but never defined 178 | static void psi_avgs_work(struct work_struct *work); | ^~~~~~~~~~~~~ kernel/sched/psi.c:180:13: warning: 'poll_timer_fn' used but never defined
vim +/enhanced_isolcpus_setup +244 kernel/sched/isolation.c
242 243 bool enhanced_isolcpus;
244 static int __init enhanced_isolcpus_setup(char *str)