* [zen:7.1/prjc 595/670] kernel/sched/alt_core.c:487:33: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2026-06-30 18:15 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-06-30 18:15 UTC (permalink / raw)
To: steven; +Cc: oe-kbuild-all
Hi Alfred,
First bad commit (maybe != root cause):
tree: https://github.com/zen-kernel/zen-kernel 7.1/prjc
head: bb2b8160912c2185b974596c31e727ae49edf0d4
commit: bf165aaac06ca8d88bf0b207e7c43684239c5d7c [595/670] sched/alt: [Sync] 653fda7ae73d sched/mmcid: Switch over to the new mechanism
config: powerpc64-randconfig-r132-20260628 (https://download.01.org/0day-ci/archive/20260701/202607010246.LJptC3HN-lkp@intel.com/config)
compiler: clang version 21.1.8 (https://github.com/llvm/llvm-project 2078da43e25a4623cab2d0d60decddf709aaea28)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260701/202607010246.LJptC3HN-lkp@intel.com/reproduce)
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/202607010246.LJptC3HN-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> kernel/sched/alt_core.c:487:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *task @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:487:33: sparse: expected struct task_struct *task
kernel/sched/alt_core.c:487:33: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/alt_core.c:1694:6: sparse: sparse: symbol 'do_set_cpus_allowed' was not declared. Should it be static?
>> kernel/sched/alt_core.c:2462:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct const *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:2462:36: sparse: expected struct task_struct const *p
kernel/sched/alt_core.c:2462:36: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/alt_core.c:5828:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *push_task @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:5828:43: sparse: expected struct task_struct *push_task
kernel/sched/alt_core.c:5828:43: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/alt_core.c:3861:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:3861:15: sparse: struct task_struct *
kernel/sched/alt_core.c:3861:15: sparse: struct task_struct [noderef] __rcu *
>> kernel/sched/alt_core.c:3945:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:3945:38: sparse: expected struct task_struct *curr
kernel/sched/alt_core.c:3945:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/alt_core.c:4029:46: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:4029:46: sparse: expected struct task_struct *curr
kernel/sched/alt_core.c:4029:46: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/alt_core.c:4589:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *prev @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:4589:14: sparse: expected struct task_struct *prev
kernel/sched/alt_core.c:4589:14: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/alt_core.c:5132:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:5132:17: sparse: struct task_struct *
kernel/sched/alt_core.c:5132:17: sparse: struct task_struct [noderef] __rcu *
>> kernel/sched/alt_core.c:5681:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:5681:25: sparse: expected struct task_struct *p
kernel/sched/alt_core.c:5681:25: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/alt_core.c:923:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/alt_core.c:923:38: sparse: expected struct task_struct *curr
kernel/sched/alt_core.c:923:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1784:38: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1784:38: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1784:38: sparse: struct task_struct const *
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
kernel/sched/alt_core.c:1140:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct *
kernel/sched/alt_core.c:1140:37: sparse: struct task_struct [noderef] __rcu *
vim +487 kernel/sched/alt_core.c
78ae9aedd80b20 Alfred Chen 2021-09-02 450
628c9dd0f141e0 Alfred Chen 2019-08-19 451 /*
628c9dd0f141e0 Alfred Chen 2019-08-19 452 * RQ-clock updating methods:
628c9dd0f141e0 Alfred Chen 2019-08-19 453 */
628c9dd0f141e0 Alfred Chen 2019-08-19 454
628c9dd0f141e0 Alfred Chen 2019-08-19 455 static void update_rq_clock_task(struct rq *rq, s64 delta)
628c9dd0f141e0 Alfred Chen 2019-08-19 456 {
628c9dd0f141e0 Alfred Chen 2019-08-19 457 /*
628c9dd0f141e0 Alfred Chen 2019-08-19 458 * In theory, the compile should just see 0 here, and optimize out the call
628c9dd0f141e0 Alfred Chen 2019-08-19 459 * to sched_rt_avg_update. But I don't trust it...
628c9dd0f141e0 Alfred Chen 2019-08-19 460 */
628c9dd0f141e0 Alfred Chen 2019-08-19 461 s64 __maybe_unused steal = 0, irq_delta = 0;
628c9dd0f141e0 Alfred Chen 2019-08-19 462
628c9dd0f141e0 Alfred Chen 2019-08-19 463 #ifdef CONFIG_IRQ_TIME_ACCOUNTING
f23f196bb512cd Alfred Chen 2025-03-07 464 if (irqtime_enabled()) {
628c9dd0f141e0 Alfred Chen 2019-08-19 465 irq_delta = irq_time_read(cpu_of(rq)) - rq->prev_irq_time;
628c9dd0f141e0 Alfred Chen 2019-08-19 466
628c9dd0f141e0 Alfred Chen 2019-08-19 467 /*
628c9dd0f141e0 Alfred Chen 2019-08-19 468 * Since irq_time is only updated on {soft,}irq_exit, we might run into
628c9dd0f141e0 Alfred Chen 2019-08-19 469 * this case when a previous update_rq_clock() happened inside a
b868217725e119 Alfred Chen 2024-09-13 470 * {soft,}IRQ region.
628c9dd0f141e0 Alfred Chen 2019-08-19 471 *
628c9dd0f141e0 Alfred Chen 2019-08-19 472 * When this happens, we stop ->clock_task and only update the
628c9dd0f141e0 Alfred Chen 2019-08-19 473 * prev_irq_time stamp to account for the part that fit, so that a next
628c9dd0f141e0 Alfred Chen 2019-08-19 474 * update will consume the rest. This ensures ->clock_task is
628c9dd0f141e0 Alfred Chen 2019-08-19 475 * monotonic.
628c9dd0f141e0 Alfred Chen 2019-08-19 476 *
b868217725e119 Alfred Chen 2024-09-13 477 * It does however cause some slight miss-attribution of {soft,}IRQ
628c9dd0f141e0 Alfred Chen 2019-08-19 478 * time, a more accurate solution would be to update the irq_time using
628c9dd0f141e0 Alfred Chen 2019-08-19 479 * the current rq->clock timestamp, except that would require using
628c9dd0f141e0 Alfred Chen 2019-08-19 480 * atomic ops.
628c9dd0f141e0 Alfred Chen 2019-08-19 481 */
628c9dd0f141e0 Alfred Chen 2019-08-19 482 if (irq_delta > delta)
628c9dd0f141e0 Alfred Chen 2019-08-19 483 irq_delta = delta;
628c9dd0f141e0 Alfred Chen 2019-08-19 484
628c9dd0f141e0 Alfred Chen 2019-08-19 485 rq->prev_irq_time += irq_delta;
628c9dd0f141e0 Alfred Chen 2019-08-19 486 delta -= irq_delta;
0c2aa73b691e0c Alfred Chen 2023-06-08 @487 delayacct_irq(rq->curr, irq_delta);
f23f196bb512cd Alfred Chen 2025-03-07 488 }
628c9dd0f141e0 Alfred Chen 2019-08-19 489 #endif
628c9dd0f141e0 Alfred Chen 2019-08-19 490 #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
628c9dd0f141e0 Alfred Chen 2019-08-19 491 if (static_key_false((¶virt_steal_rq_enabled))) {
094b69eadfa6e8 Alfred Chen 2025-03-07 492 u64 prev_steal;
094b69eadfa6e8 Alfred Chen 2025-03-07 493
094b69eadfa6e8 Alfred Chen 2025-03-07 494 steal = prev_steal = paravirt_steal_clock(cpu_of(rq));
628c9dd0f141e0 Alfred Chen 2019-08-19 495 steal -= rq->prev_steal_time_rq;
628c9dd0f141e0 Alfred Chen 2019-08-19 496
628c9dd0f141e0 Alfred Chen 2019-08-19 497 if (unlikely(steal > delta))
628c9dd0f141e0 Alfred Chen 2019-08-19 498 steal = delta;
628c9dd0f141e0 Alfred Chen 2019-08-19 499
094b69eadfa6e8 Alfred Chen 2025-03-07 500 rq->prev_steal_time_rq = prev_steal;
628c9dd0f141e0 Alfred Chen 2019-08-19 501 delta -= steal;
628c9dd0f141e0 Alfred Chen 2019-08-19 502 }
628c9dd0f141e0 Alfred Chen 2019-08-19 503 #endif
628c9dd0f141e0 Alfred Chen 2019-08-19 504
628c9dd0f141e0 Alfred Chen 2019-08-19 505 rq->clock_task += delta;
628c9dd0f141e0 Alfred Chen 2019-08-19 506
:::::: The code at line 487 was first introduced by commit
:::::: 0c2aa73b691e0c04afd5b833c0ca722a76441af3 sched/alt: [Sync] a3b2aeac9d15 delayacct: track delays from IRQ/SOFTIRQ
:::::: TO: Alfred Chen <cchalpha@gmail.com>
:::::: CC: Alfred Chen <cchalpha@gmail.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-30 18:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-30 18:15 [zen:7.1/prjc 595/670] kernel/sched/alt_core.c:487:33: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
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.