From: kernel test robot <lkp@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [peterz-queue:sched/urgent 1/1] kernel/cgroup/cpuset.c:3783:1: warning: ISO C90 forbids mixed declarations and code
Date: Wed, 1 Feb 2023 00:23:37 +0800 [thread overview]
Message-ID: <202302010002.LvcXSxvh-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/urgent
head: 4f4d0b01796a0e1cae148d96b32520ebabb3951f
commit: 4f4d0b01796a0e1cae148d96b32520ebabb3951f [1/1] cpuset: Fix cpuset_cpus_allowed() to not filter offline CPUs
config: ia64-allyesconfig (https://download.01.org/0day-ci/archive/20230201/202302010002.LvcXSxvh-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 12.1.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://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=4f4d0b01796a0e1cae148d96b32520ebabb3951f
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue sched/urgent
git checkout 4f4d0b01796a0e1cae148d96b32520ebabb3951f
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash kernel/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
kernel/cgroup/cpuset.c: In function 'cpuset_cpus_allowed':
kernel/cgroup/cpuset.c:3749:1: error: expected 'while' before 'bool'
3749 | bool cpuset_cpus_allowed_fallback(struct task_struct *tsk)
| ^~~~
>> kernel/cgroup/cpuset.c:3783:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
3783 | void __init cpuset_init_current_mems_allowed(void)
| ^~~~
kernel/cgroup/cpuset.c:3829:23: error: invalid storage class for function 'nearest_hardwall_ancestor'
3829 | static struct cpuset *nearest_hardwall_ancestor(struct cpuset *cs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3937:12: error: invalid storage class for function 'cpuset_spread_node'
3937 | static int cpuset_spread_node(int *rotor)
| ^~~~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/preempt.h:10,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from kernel/cgroup/cpuset.c:25:
kernel/cgroup/cpuset.c:3960:19: error: non-static declaration of 'cpuset_mem_spread_node' follows static declaration
3960 | EXPORT_SYMBOL_GPL(cpuset_mem_spread_node);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:87:28: note: in definition of macro '___EXPORT_SYMBOL'
87 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
147 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:151:41: note: in expansion of macro '_EXPORT_SYMBOL'
151 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3960:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
3960 | EXPORT_SYMBOL_GPL(cpuset_mem_spread_node);
| ^~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3942:5: note: previous definition of 'cpuset_mem_spread_node' with type 'int(void)'
3942 | int cpuset_mem_spread_node(void)
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:57:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
57 | static const struct kernel_symbol __ksymtab_##sym \
| ^~~~~~
include/linux/export.h:96:9: note: in expansion of macro '__KSYMTAB_ENTRY'
96 | __KSYMTAB_ENTRY(sym, sec)
| ^~~~~~~~~~~~~~~
include/linux/export.h:140:41: note: in expansion of macro '___EXPORT_SYMBOL'
140 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:147:41: note: in expansion of macro '__EXPORT_SYMBOL'
147 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:151:41: note: in expansion of macro '_EXPORT_SYMBOL'
151 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3960:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
3960 | EXPORT_SYMBOL_GPL(cpuset_mem_spread_node);
| ^~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:4006:5: error: section attribute cannot be specified for local variables
4006 | int cpuset_memory_pressure_enabled __read_mostly;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:4080:1: error: expected declaration or statement at end of input
4080 | }
| ^
kernel/cgroup/cpuset.c:4006:5: warning: unused variable 'cpuset_memory_pressure_enabled' [-Wunused-variable]
4006 | int cpuset_memory_pressure_enabled __read_mostly;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c: At top level:
kernel/cgroup/cpuset.c:4074:6: warning: 'cpuset_task_status_allowed' defined but not used [-Wunused-function]
4074 | void cpuset_task_status_allowed(struct seq_file *m, struct task_struct *task)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:4043:5: warning: 'proc_cpuset_show' defined but not used [-Wunused-function]
4043 | int proc_cpuset_show(struct seq_file *m, struct pid_namespace *ns,
| ^~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:4026:6: warning: '__cpuset_memory_pressure_bump' defined but not used [-Wunused-function]
4026 | void __cpuset_memory_pressure_bump(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3985:6: warning: 'cpuset_print_current_mems_allowed' defined but not used [-Wunused-function]
3985 | void cpuset_print_current_mems_allowed(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3973:5: warning: 'cpuset_mems_allowed_intersects' defined but not used [-Wunused-function]
3973 | int cpuset_mems_allowed_intersects(const struct task_struct *tsk1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3951:5: warning: 'cpuset_slab_spread_node' defined but not used [-Wunused-function]
3951 | int cpuset_slab_spread_node(void)
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3876:6: warning: '__cpuset_node_allowed' defined but not used [-Wunused-function]
3876 | bool __cpuset_node_allowed(int node, gfp_t gfp_mask)
| ^~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3818:5: warning: 'cpuset_nodemask_valid_mems_allowed' defined but not used [-Wunused-function]
3818 | int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3798:12: warning: 'cpuset_mems_allowed' defined but not used [-Wunused-function]
3798 | nodemask_t cpuset_mems_allowed(struct task_struct *tsk)
| ^~~~~~~~~~~~~~~~~~~
kernel/cgroup/cpuset.c:3783:13: warning: 'cpuset_init_current_mems_allowed' defined but not used [-Wunused-function]
3783 | void __init cpuset_init_current_mems_allowed(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +3783 kernel/cgroup/cpuset.c
^1da177e4c3f415 kernel/cpuset.c Linus Torvalds 2005-04-16 3734
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3735 /**
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3736 * cpuset_cpus_allowed_fallback - final fallback before complete catastrophe.
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3737 * @tsk: pointer to task_struct with which the scheduler is struggling
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3738 *
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3739 * Description: In the case that the scheduler cannot find an allowed cpu in
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3740 * tsk->cpus_allowed, we fall back to task_cs(tsk)->cpus_allowed. In legacy
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3741 * mode however, this value is the same as task_cs(tsk)->effective_cpus,
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3742 * which will not contain a sane cpumask during cases such as cpu hotplugging.
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3743 * This is the absolute last resort for the scheduler and it is only used if
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3744 * _every_ other avenue has been traveled.
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3745 *
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3746 * Returns true if the affinity of @tsk was changed, false otherwise.
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3747 **/
d477f8c202d1f0d kernel/cgroup/cpuset.c Joel Savitz 2019-06-12 3748
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 @3749 bool cpuset_cpus_allowed_fallback(struct task_struct *tsk)
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3750 {
d4b96fb92ae7fe7 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3751 const struct cpumask *possible_mask = task_cpu_possible_mask(tsk);
d4b96fb92ae7fe7 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3752 const struct cpumask *cs_mask;
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3753 bool changed = false;
d4b96fb92ae7fe7 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3754
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3755 rcu_read_lock();
d4b96fb92ae7fe7 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3756 cs_mask = task_cs(tsk)->cpus_allowed;
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3757 if (is_in_v2_mode() && cpumask_subset(cs_mask, possible_mask)) {
d4b96fb92ae7fe7 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3758 do_set_cpus_allowed(tsk, cs_mask);
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3759 changed = true;
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3760 }
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3761 rcu_read_unlock();
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3762
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3763 /*
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3764 * We own tsk->cpus_allowed, nobody can change it under us.
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3765 *
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3766 * But we used cs && cs->cpus_allowed lockless and thus can
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3767 * race with cgroup_attach_task() or update_cpumask() and get
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3768 * the wrong tsk->cpus_allowed. However, both cases imply the
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3769 * subsequent cpuset_change_cpumask()->set_cpus_allowed_ptr()
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3770 * which takes task_rq_lock().
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3771 *
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3772 * If we are called after it dropped the lock we must see all
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3773 * changes in tsk_cs()->cpus_allowed. Otherwise we can temporary
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3774 * set any mask even if it is not right from task_cs() pov,
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3775 * the pending set_cpus_allowed_ptr() will fix things.
2baab4e90495ebc kernel/cpuset.c Peter Zijlstra 2012-03-20 3776 *
2baab4e90495ebc kernel/cpuset.c Peter Zijlstra 2012-03-20 3777 * select_fallback_rq() will fix things ups and set cpu_possible_mask
2baab4e90495ebc kernel/cpuset.c Peter Zijlstra 2012-03-20 3778 * if required.
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3779 */
97c0054dbe2c3c5 kernel/cgroup/cpuset.c Will Deacon 2021-07-30 3780 return changed;
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3781 }
9084bb8246ea935 kernel/cpuset.c Oleg Nesterov 2010-03-15 3782
8f4ab07f4bf1b10 kernel/cpuset.c Rasmus Villemoes 2015-02-12 @3783 void __init cpuset_init_current_mems_allowed(void)
^1da177e4c3f415 kernel/cpuset.c Linus Torvalds 2005-04-16 3784 {
f9a86fcbbb1e554 kernel/cpuset.c Mike Travis 2008-04-04 3785 nodes_setall(current->mems_allowed);
^1da177e4c3f415 kernel/cpuset.c Linus Torvalds 2005-04-16 3786 }
^1da177e4c3f415 kernel/cpuset.c Linus Torvalds 2005-04-16 3787
:::::: The code at line 3783 was first introduced by commit
:::::: 8f4ab07f4bf1b1069c01b7c6758a7d444406996b kernel/cpuset.c: Mark cpuset_init_current_mems_allowed as __init
:::::: TO: Rasmus Villemoes <linux@rasmusvillemoes.dk>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next reply other threads:[~2023-01-31 16:24 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-31 16:23 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-01-31 16:34 [peterz-queue:sched/urgent 1/1] kernel/cgroup/cpuset.c:3783:1: warning: ISO C90 forbids mixed declarations and code kernel test robot
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=202302010002.LvcXSxvh-lkp@intel.com \
--to=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.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.