tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.19
head: 45baa007ba13bc516470dbd9379b2f7525a087e1
commit: 33b634a147c282f733336dfe39d8b7c4bf11509a [56/59] CHROMIUM: sched: Add a per-thread
core scheduling interface
config: x86_64-randconfig-s022-20200615 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-3-g55607964-dirty
git checkout 33b634a147c282f733336dfe39d8b7c4bf11509a
# save the attached .config to linux build tree
make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
kernel/sched/core.c:313:6: sparse: sparse: symbol 'sched_core_get' was not
declared. Should it be static?
kernel/sched/core.c:321:6: sparse: sparse: symbol 'sched_core_put' was not
declared. Should it be static?
kernel/sched/core.c:911:9: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/sched/core.c:911:9: sparse: struct sched_domain [noderef] <asn:4> *
kernel/sched/core.c:911:9: sparse: struct sched_domain *
kernel/sched/core.c:1980:6: sparse: sparse: symbol 'sched_set_stop_task' was not
declared. Should it be static?
kernel/sched/core.c:2039:17: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/sched/core.c:2039:17: sparse: struct sched_domain [noderef] <asn:4> *
kernel/sched/core.c:2039:17: sparse: struct sched_domain *
kernel/sched/core.c:2227:27: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/sched/core.c:2227:27: sparse: struct task_struct [noderef] <asn:4> *
kernel/sched/core.c:2227:27: sparse: struct task_struct *
kernel/sched/core.c:4193:9: sparse: sparse: incompatible types in comparison expression
(different address spaces):
kernel/sched/core.c:4193:9: sparse: struct sched_domain [noderef] <asn:4> *
kernel/sched/core.c:4193:9: sparse: struct sched_domain *
kernel/sched/core.c:7117:60: sparse: sparse: no member 'sched_task_group' in
struct task_struct
kernel/sched/core.c:5875:28: sparse: sparse: context imbalance in
'__cond_resched_lock' - unexpected unlock
kernel/sched/core.c:313:6: warning: no previous prototype for 'sched_core_get'
[-Wmissing-prototypes]
313 | void sched_core_get(void)
| ^~~~~~~~~~~~~~
kernel/sched/core.c:321:6: warning: no previous prototype for 'sched_core_put'
[-Wmissing-prototypes]
321 | void sched_core_put(void)
| ^~~~~~~~~~~~~~
kernel/sched/core.c:1980:6: warning: no previous prototype for
'sched_set_stop_task' [-Wmissing-prototypes]
1980 | void sched_set_stop_task(int cpu, struct task_struct *stop)
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:4577:35: warning: no previous prototype for
'preempt_schedule_irq' [-Wmissing-prototypes]
4577 | asmlinkage __visible void __sched preempt_schedule_irq(void)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c: In function 'sched_init':
kernel/sched/core.c:6835:32: warning: variable 'ptr' set but not used
[-Wunused-but-set-variable]
6835 | unsigned long alloc_size = 0, ptr;
| ^~~
kernel/sched/core.c: In function 'task_set_core_sched':
> kernel/sched/core.c:7117:46: error: 'struct task_struct'
has no member named 'sched_task_group'
7117 | (tsk->core_cookie ==
(unsigned long)tsk->sched_task_group)) {
| ^~
--
kernel/sched/core.c:313:6: warning: no previous prototype for 'sched_core_get'
[-Wmissing-prototypes]
313 | void sched_core_get(void)
| ^~~~~~~~~~~~~~
kernel/sched/core.c:321:6: warning: no previous prototype for 'sched_core_put'
[-Wmissing-prototypes]
321 | void sched_core_put(void)
| ^~~~~~~~~~~~~~
kernel/sched/core.c:1980:6: warning: no previous prototype for
'sched_set_stop_task' [-Wmissing-prototypes]
1980 | void sched_set_stop_task(int cpu, struct task_struct *stop)
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:4577:35: warning: no previous prototype for
'preempt_schedule_irq' [-Wmissing-prototypes]
4577 | asmlinkage __visible void __sched preempt_schedule_irq(void)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c: In function 'sched_init':
kernel/sched/core.c:6835:32: warning: variable 'ptr' set but not used
[-Wunused-but-set-variable]
6835 | unsigned long alloc_size = 0, ptr;
| ^~~
kernel/sched/core.c: In function 'task_set_core_sched':
> kernel/sched/core.c:7117:46: error: 'struct task_struct'
has no member named 'sched_task_group'
7117 | (tsk->core_cookie ==
(unsigned long)tsk->sched_task_group)) {
| ^~
vim +7117 kernel/sched/core.c
7090
7091 int task_set_core_sched(int set, struct task_struct *tsk)
7092 {
7093 if (!tsk)
7094 tsk = current;
7095
7096 // if (!capable(CAP_SYS_ADMIN))
7097 // return -EPERM;
7098
7099 if (set > 1)
7100 return -ERANGE;
7101
7102 if (!static_branch_likely(&sched_smt_present))
7103 return -EINVAL;
7104
7105 /*
7106 * If cookie was set previously, return -EBUSY if either of the
7107 * following are true:
7108 * 1. Task was previously tagged by CGroup method.
7109 * 2. Task or its parent were tagged by prctl().
7110 *
7111 * Note that, if CGroup tagging is done after prctl(), then that would
7112 * override the cookie. However, if prctl() is done after task was
7113 * added to tagged CGroup, then the prctl() returns -EBUSY.
7114 */
7115 if (!!tsk->core_cookie == set) {
7116 if ((tsk->core_cookie == (unsigned long)tsk) ||
7117 (tsk->core_cookie == (unsigned
long)tsk->sched_task_group)) {
7118 return -EBUSY;
7119 }
7120 }
7121
7122 if (set)
7123 sched_core_get();
7124
7125 tsk->core_cookie = set ? (unsigned long)tsk : 0;
7126
7127 stop_machine(task_set_core_sched_stopper, NULL, NULL);
7128
7129 if (!set)
7130 sched_core_put();
7131
7132 pr_alert("coresched: prctl success: %s/%d %lx (fork: %d)\n",
tsk->comm,
7133 tsk->pid, tsk->core_cookie, tsk != current);
7134 return 0;
7135 }
7136 #endif
7137
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org