All of lore.kernel.org
 help / color / mirror / Atom feed
* [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((&paravirt_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.