CC: kbuild-all(a)lists.01.org
TO: Juri Lelli <juri.lelli(a)redhat.com>
tree:
https://github.com/jlelli/linux.git deadline/server-rfc_v2
head: 924ae6f145ff3a46c312647f4b3189abf3ba9d2d
commit: c9d6e71fba18dbb45f311d8297b75a30e4618612 [5/6] sched/deadline: Introduce deadline
servers
:::::: branch date: 8 hours ago
:::::: commit date: 8 hours ago
config: x86_64-randconfig-s021-20200731 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-115-g5fc204f2-dirty
git checkout c9d6e71fba18dbb45f311d8297b75a30e4618612
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
kernel/sched/deadline.c:1872:42: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected struct sched_dl_entity *b @@ got struct
sched_dl_entity [noderef] __rcu * @@
kernel/sched/deadline.c:1872:42: sparse: expected struct sched_dl_entity *b
kernel/sched/deadline.c:1872:42: sparse: got struct sched_dl_entity [noderef] __rcu
*
kernel/sched/deadline.c:1158:23: sparse: sparse: incorrect type in argument 1
(different address spaces) @@ expected struct task_struct *p @@ got struct
task_struct [noderef] __rcu *curr @@
kernel/sched/deadline.c:1158:23: sparse: expected struct task_struct *p
kernel/sched/deadline.c:1158:23: sparse: got struct task_struct [noderef] __rcu
*curr
kernel/sched/deadline.c:1383:38: sparse: sparse: incorrect type in initializer
(different address spaces) @@ expected struct task_struct *curr @@ got struct
task_struct [noderef] __rcu *curr @@
kernel/sched/deadline.c:1383:38: sparse: expected struct task_struct *curr
kernel/sched/deadline.c:1383:38: sparse: got struct task_struct [noderef] __rcu
*curr
kernel/sched/deadline.c:2550:22: sparse: sparse: incompatible types in comparison
expression (different address spaces):
kernel/sched/deadline.c:2550:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/deadline.c:2550:22: sparse: struct task_struct *
kernel/sched/deadline.c:2569:46: sparse: sparse: incompatible types in comparison
expression (different address spaces):
kernel/sched/deadline.c:2569:46: sparse: struct task_struct [noderef] __rcu *
kernel/sched/deadline.c:2569:46: sparse: struct task_struct *
> kernel/sched/deadline.c:1451:31: sparse: sparse: context
imbalance in 'inactive_task_timer' - unexpected unlock
kernel/sched/deadline.c: note: in included file:
kernel/sched/sched.h:1715:25: sparse: sparse: incompatible types in comparison
expression (different address spaces):
kernel/sched/sched.h:1715:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1715:25: sparse: struct task_struct *
#
https://github.com/jlelli/linux/commit/c9d6e71fba18dbb45f311d8297b75a30e4...
git remote add jlelli
https://github.com/jlelli/linux.git
git remote update jlelli
git checkout c9d6e71fba18dbb45f311d8297b75a30e4618612
vim +/inactive_task_timer +1451 kernel/sched/deadline.c
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1401
209a0cbda7a01d2 Luca Abeni 2017-05-18 1402 static enum hrtimer_restart
inactive_task_timer(struct hrtimer *timer)
209a0cbda7a01d2 Luca Abeni 2017-05-18 1403 {
209a0cbda7a01d2 Luca Abeni 2017-05-18 1404 struct sched_dl_entity *dl_se =
container_of(timer,
209a0cbda7a01d2 Luca Abeni 2017-05-18 1405 struct sched_dl_entity,
209a0cbda7a01d2 Luca Abeni 2017-05-18 1406 inactive_timer);
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1407 struct task_struct *p = NULL;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1408 struct rq_flags rf;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1409 struct rq *rq;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1410
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1411 if (!dl_server(dl_se)) {
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1412 p = dl_task_of(dl_se);
209a0cbda7a01d2 Luca Abeni 2017-05-18 1413 rq = task_rq_lock(p, &rf);
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1414 } else {
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1415 rq = dl_se->rq;
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1416 rq_lock(rq, &rf);
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1417 }
209a0cbda7a01d2 Luca Abeni 2017-05-18 1418
ecda2b66e263dfd Juri Lelli 2018-05-30 1419 sched_clock_tick();
ecda2b66e263dfd Juri Lelli 2018-05-30 1420 update_rq_clock(rq);
ecda2b66e263dfd Juri Lelli 2018-05-30 1421
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1422 if (dl_server(dl_se))
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1423 goto no_task;
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1424
209a0cbda7a01d2 Luca Abeni 2017-05-18 1425 if (!dl_task(p) || p->state ==
TASK_DEAD) {
387e31300b57601 Luca Abeni 2017-05-18 1426 struct dl_bw *dl_b =
dl_bw_of(task_cpu(p));
387e31300b57601 Luca Abeni 2017-05-18 1427
209a0cbda7a01d2 Luca Abeni 2017-05-18 1428 if (p->state == TASK_DEAD &&
dl_se->dl_non_contending) {
794a56ebd9a57db Juri Lelli 2017-12-04 1429 sub_running_bw(&p->dl,
dl_rq_of_se(&p->dl));
794a56ebd9a57db Juri Lelli 2017-12-04 1430 sub_rq_bw(&p->dl,
dl_rq_of_se(&p->dl));
209a0cbda7a01d2 Luca Abeni 2017-05-18 1431 dl_se->dl_non_contending = 0;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1432 }
387e31300b57601 Luca Abeni 2017-05-18 1433
387e31300b57601 Luca Abeni 2017-05-18 1434 raw_spin_lock(&dl_b->lock);
8c0944cee7af552 Peter Zijlstra 2017-09-07 1435 __dl_sub(dl_b, p->dl.dl_bw,
dl_bw_cpus(task_cpu(p)));
387e31300b57601 Luca Abeni 2017-05-18 1436 raw_spin_unlock(&dl_b->lock);
6a817853d43961d Peter Zijlstra 2019-07-26 1437 __dl_clear_params(dl_se);
209a0cbda7a01d2 Luca Abeni 2017-05-18 1438
209a0cbda7a01d2 Luca Abeni 2017-05-18 1439 goto unlock;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1440 }
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1441
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1442 no_task:
209a0cbda7a01d2 Luca Abeni 2017-05-18 1443 if (dl_se->dl_non_contending == 0)
209a0cbda7a01d2 Luca Abeni 2017-05-18 1444 goto unlock;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1445
794a56ebd9a57db Juri Lelli 2017-12-04 1446 sub_running_bw(dl_se, &rq->dl);
209a0cbda7a01d2 Luca Abeni 2017-05-18 1447 dl_se->dl_non_contending = 0;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1448 unlock:
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1449
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1450 if (!dl_server(dl_se)) {
209a0cbda7a01d2 Luca Abeni 2017-05-18 @1451 task_rq_unlock(rq, p, &rf);
209a0cbda7a01d2 Luca Abeni 2017-05-18 1452 put_task_struct(p);
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1453 } else {
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1454 rq_unlock(rq, &rf);
c9d6e71fba18dbb Peter Zijlstra 2019-07-24 1455 }
209a0cbda7a01d2 Luca Abeni 2017-05-18 1456
209a0cbda7a01d2 Luca Abeni 2017-05-18 1457 return HRTIMER_NORESTART;
209a0cbda7a01d2 Luca Abeni 2017-05-18 1458 }
209a0cbda7a01d2 Luca Abeni 2017-05-18 1459
:::::: The code at line 1451 was first introduced by commit
:::::: 209a0cbda7a01d2ea32a8b631d35e873bee498e9 sched/deadline: Improve the tracking of
active utilization
:::::: TO: Luca Abeni <luca.abeni(a)santannapisa.it>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org