All of lore.kernel.org
 help / color / mirror / Atom feed
* [zen-kernel-zen-kernel:5.6/muqss 1/18] kernel/sched/MuQSS.c:1707:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
@ 2020-05-10  7:46 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-05-10  7:46 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 19969 bytes --]

tree:   https://github.com/zen-kernel/zen-kernel 5.6/muqss
head:   e70073b6a71de959a53ff82f74481c15fa23b2cd
commit: edbc5ae3fb7ae074a02e40802df66ae90ff4888e [1/18] MultiQueue Skiplist Scheduler v0.198
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-191-gc51a0382-dirty
        git checkout edbc5ae3fb7ae074a02e40802df66ae90ff4888e
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> kernel/sched/MuQSS.c:1707:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/MuQSS.c:1707:17: sparse:    struct sched_domain [noderef] <asn:4> *
>> kernel/sched/MuQSS.c:1707:17: sparse:    struct sched_domain *
   kernel/sched/MuQSS.c:1848:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/MuQSS.c:1848:27: sparse:    struct task_struct [noderef] <asn:4> *
>> kernel/sched/MuQSS.c:1848:27: sparse:    struct task_struct *
>> kernel/sched/MuQSS.c:2382:16: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct task_struct *parent @@    got struct task_structstruct task_struct *parent @@
   kernel/sched/MuQSS.c:2382:16: sparse:    expected struct task_struct *parent
   kernel/sched/MuQSS.c:2382:16: sparse:    got struct task_struct [noderef] <asn:4> *parent
   kernel/sched/MuQSS.c:4118:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.c:4118:17: sparse:    struct task_struct [noderef] <asn:4> *
   kernel/sched/MuQSS.c:4118:17: sparse:    struct task_struct *
   kernel/sched/MuQSS.c:5976:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.c:5976:9: sparse:    struct task_struct [noderef] <asn:4> *
   kernel/sched/MuQSS.c:5976:9: sparse:    struct task_struct *
   kernel/sched/MuQSS.c:6054:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.c:6054:9: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/MuQSS.c:6054:9: sparse:    struct sched_domain *
   kernel/sched/MuQSS.c:6461:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.c:6461:9: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/MuQSS.c:6461:9: sparse:    struct sched_domain *
   kernel/sched/MuQSS.c:6468:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.c:6468:9: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/MuQSS.c:6468:9: sparse:    struct sched_domain *
   kernel/sched/MuQSS.c:6817:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.c:6817:17: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/MuQSS.c:6817:17: sparse:    struct sched_domain *
>> kernel/sched/MuQSS.h:771:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/MuQSS.h:771:16: sparse:    struct update_util_data [noderef] <asn:4> *
>> kernel/sched/MuQSS.h:771:16: sparse:    struct update_util_data *
--
   kernel/sched/topology.c:92:56: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected struct sched_domain *sd @@    got struct sched_domaistruct sched_domain *sd @@
   kernel/sched/topology.c:92:56: sparse:    expected struct sched_domain *sd
   kernel/sched/topology.c:92:56: sparse:    got struct sched_domain [noderef] <asn:4> *child
   kernel/sched/topology.c:111:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected struct sched_domain *sd @@    got struct sched_domaistruct sched_domain *sd @@
   kernel/sched/topology.c:111:60: sparse:    expected struct sched_domain *sd
   kernel/sched/topology.c:111:60: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:134:20: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain *sd @@    got struct sched_domaistruct sched_domain *sd @@
   kernel/sched/topology.c:134:20: sparse:    expected struct sched_domain *sd
   kernel/sched/topology.c:134:20: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:408:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/topology.c:408:9: sparse:    struct perf_domain [noderef] <asn:4> *
>> kernel/sched/topology.c:408:9: sparse:    struct perf_domain *
   kernel/sched/topology.c:417:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/topology.c:417:9: sparse:    struct perf_domain [noderef] <asn:4> *
   kernel/sched/topology.c:417:9: sparse:    struct perf_domain *
   kernel/sched/topology.c:606:49: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct sched_domain *parent @@    got struct sched_domaistruct sched_domain *parent @@
   kernel/sched/topology.c:606:49: sparse:    expected struct sched_domain *parent
   kernel/sched/topology.c:606:49: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:627:1: sparse: sparse: symbol 'sd_llc' redeclared with different type (different address spaces):
>> kernel/sched/topology.c:627:1: sparse:    struct sched_domain [noderef] <asn:4> *[addressable] [noderef] [toplevel] <asn:3> sd_llc
>> kernel/sched/MuQSS.h:581:1: sparse: note: previously declared as:
>> kernel/sched/MuQSS.h:581:1: sparse:    struct sched_domain *extern [addressable] [noderef] [toplevel] <asn:3> sd_llc
   kernel/sched/topology.c:630:1: sparse: sparse: symbol 'sd_llc_shared' redeclared with different type (different address spaces):
>> kernel/sched/topology.c:630:1: sparse:    struct sched_domain_shared [noderef] <asn:4> *[addressable] [noderef] [toplevel] <asn:3> sd_llc_shared
   kernel/sched/MuQSS.h:584:1: sparse: note: previously declared as:
>> kernel/sched/MuQSS.h:584:1: sparse:    struct sched_domain_shared *extern [addressable] [noderef] [toplevel] <asn:3> sd_llc_shared
   kernel/sched/topology.c:631:1: sparse: sparse: symbol 'sd_numa' redeclared with different type (different address spaces):
>> kernel/sched/topology.c:631:1: sparse:    struct sched_domain [noderef] <asn:4> *[addressable] [noderef] [toplevel] <asn:3> sd_numa
   kernel/sched/MuQSS.h:585:1: sparse: note: previously declared as:
>> kernel/sched/MuQSS.h:585:1: sparse:    struct sched_domain *extern [addressable] [noderef] [toplevel] <asn:3> sd_numa
   kernel/sched/topology.c:632:1: sparse: sparse: symbol 'sd_asym_packing' redeclared with different type (different address spaces):
>> kernel/sched/topology.c:632:1: sparse:    struct sched_domain [noderef] <asn:4> *[addressable] [noderef] [toplevel] <asn:3> sd_asym_packing
   kernel/sched/MuQSS.h:586:1: sparse: note: previously declared as:
>> kernel/sched/MuQSS.h:586:1: sparse:    struct sched_domain *extern [addressable] [noderef] [toplevel] <asn:3> sd_asym_packing
   kernel/sched/topology.c:633:1: sparse: sparse: symbol 'sd_asym_cpucapacity' redeclared with different type (different address spaces):
>> kernel/sched/topology.c:633:1: sparse:    struct sched_domain [noderef] <asn:4> *[addressable] [noderef] [toplevel] <asn:3> sd_asym_cpucapacity
   kernel/sched/MuQSS.h:587:1: sparse: note: previously declared as:
>> kernel/sched/MuQSS.h:587:1: sparse:    struct sched_domain *extern [addressable] [noderef] [toplevel] <asn:3> sd_asym_cpucapacity
   kernel/sched/topology.c:677:50: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct sched_domain *parent @@    got struct sched_domaistruct sched_domain *parent @@
   kernel/sched/topology.c:677:50: sparse:    expected struct sched_domain *parent
   kernel/sched/topology.c:677:50: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:684:55: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain [noderef] <asn:4> *[noderef] <asn:4> child @@    got ref] <asn:4> *[noderef] <asn:4> child @@
   kernel/sched/topology.c:684:55: sparse:    expected struct sched_domain [noderef] <asn:4> *[noderef] <asn:4> child
   kernel/sched/topology.c:684:55: sparse:    got struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:694:29: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain *[assigned] tmp @@    got struct struct sched_domain *[assigned] tmp @@
   kernel/sched/topology.c:694:29: sparse:    expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:694:29: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:699:20: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain *sd @@    got struct sched_domaistruct sched_domain *sd @@
   kernel/sched/topology.c:699:20: sparse:    expected struct sched_domain *sd
   kernel/sched/topology.c:699:20: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:709:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/topology.c:709:9: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/topology.c:709:9: sparse:    struct sched_domain *
   kernel/sched/topology.c:870:70: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected struct sched_domain *sd @@    got struct sched_domaistruct sched_domain *sd @@
   kernel/sched/topology.c:870:70: sparse:    expected struct sched_domain *sd
   kernel/sched/topology.c:870:70: sparse:    got struct sched_domain [noderef] <asn:4> *child
   kernel/sched/topology.c:899:59: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected struct sched_domain *sd @@    got struct sched_domaistruct sched_domain *sd @@
   kernel/sched/topology.c:899:59: sparse:    expected struct sched_domain *sd
   kernel/sched/topology.c:899:59: sparse:    got struct sched_domain [noderef] <asn:4> *child
   kernel/sched/topology.c:1069:40: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct sched_domain *child @@    got struct sched_domaistruct sched_domain *child @@
   kernel/sched/topology.c:1069:40: sparse:    expected struct sched_domain *child
   kernel/sched/topology.c:1069:40: sparse:    got struct sched_domain [noderef] <asn:4> *child
   kernel/sched/topology.c:1373:43: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct sched_domain [noderef] <asn:4> *child @@    got n [noderef] <asn:4> *child @@
   kernel/sched/topology.c:1373:43: sparse:    expected struct sched_domain [noderef] <asn:4> *child
   kernel/sched/topology.c:1373:43: sparse:    got struct sched_domain *child
   kernel/sched/topology.c:1395:17: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain *t @@    got struct sched_domaistruct sched_domain *t @@
   kernel/sched/topology.c:1395:17: sparse:    expected struct sched_domain *t
   kernel/sched/topology.c:1395:17: sparse:    got struct sched_domain [noderef] <asn:4> *child
   kernel/sched/topology.c:1870:31: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain [noderef] <asn:4> *parent @@    got n [noderef] <asn:4> *parent @@
   kernel/sched/topology.c:1870:31: sparse:    expected struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:1870:31: sparse:    got struct sched_domain *sd
   kernel/sched/topology.c:2039:57: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain *[assigned] sd @@    got struct struct sched_domain *[assigned] sd @@
   kernel/sched/topology.c:2039:57: sparse:    expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2039:57: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/topology.c:2056:57: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected struct sched_domain *[assigned] sd @@    got struct struct sched_domain *[assigned] sd @@
   kernel/sched/topology.c:2056:57: sparse:    expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2056:57: sparse:    got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/MuQSS.h:560:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/MuQSS.h:560:9: sparse:    struct sched_domain [noderef] <asn:4> *
>> kernel/sched/MuQSS.h:560:9: sparse:    struct sched_domain *
   kernel/sched/MuQSS.h:573:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.h:573:9: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/MuQSS.h:573:9: sparse:    struct sched_domain *
   kernel/sched/MuQSS.h:560:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> kernel/sched/MuQSS.h:560:9: sparse:    struct sched_domain [noderef] <asn:4> *
>> kernel/sched/MuQSS.h:560:9: sparse:    struct sched_domain *
   kernel/sched/MuQSS.h:573:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/MuQSS.h:573:9: sparse:    struct sched_domain [noderef] <asn:4> *
   kernel/sched/MuQSS.h:573:9: sparse:    struct sched_domain *
--
   kernel/sched/cpufreq.c:12:1: sparse: sparse: symbol 'cpufreq_update_util_data' redeclared with different type (different address spaces):
>> kernel/sched/cpufreq.c:12:1: sparse:    struct update_util_data [noderef] <asn:4> *[addressable] [noderef] [toplevel] <asn:3> cpufreq_update_util_data
   kernel/sched/MuQSS.h:765:1: sparse: note: previously declared as:
>> kernel/sched/MuQSS.h:765:1: sparse:    struct update_util_data *extern [addressable] [noderef] [toplevel] <asn:3> cpufreq_update_util_data

vim +1707 kernel/sched/MuQSS.c

  1689	
  1690	static void
  1691	ttwu_stat(struct task_struct *p, int cpu, int wake_flags)
  1692	{
  1693		struct rq *rq;
  1694	
  1695		if (!schedstat_enabled())
  1696			return;
  1697	
  1698		rq = this_rq();
  1699	
  1700	#ifdef CONFIG_SMP
  1701		if (cpu == rq->cpu) {
  1702			__schedstat_inc(rq->ttwu_local);
  1703		} else {
  1704			struct sched_domain *sd;
  1705	
  1706			rcu_read_lock();
> 1707			for_each_domain(rq->cpu, sd) {
  1708				if (cpumask_test_cpu(cpu, sched_domain_span(sd))) {
  1709					__schedstat_inc(sd->ttwu_wake_remote);
  1710					break;
  1711				}
  1712			}
  1713			rcu_read_unlock();
  1714		}
  1715	
  1716	#endif /* CONFIG_SMP */
  1717	
  1718		__schedstat_inc(rq->ttwu_count);
  1719	}
  1720	
  1721	/*
  1722	 * Mark the task runnable and perform wakeup-preemption.
  1723	 */
  1724	static void ttwu_do_wakeup(struct rq *rq, struct task_struct *p, int wake_flags)
  1725	{
  1726		/*
  1727		 * Sync wakeups (i.e. those types of wakeups where the waker
  1728		 * has indicated that it will leave the CPU in short order)
  1729		 * don't trigger a preemption if there are no idle cpus,
  1730		 * instead waiting for current to deschedule.
  1731		 */
  1732		if (wake_flags & WF_SYNC)
  1733			resched_suitable_idle(p);
  1734		else
  1735			try_preempt(p, rq);
  1736		p->state = TASK_RUNNING;
  1737		trace_sched_wakeup(p);
  1738	}
  1739	
  1740	static void
  1741	ttwu_do_activate(struct rq *rq, struct task_struct *p, int wake_flags)
  1742	{
  1743		int en_flags = ENQUEUE_WAKEUP;
  1744	
  1745		lockdep_assert_held(rq->lock);
  1746	
  1747	#ifdef CONFIG_SMP
  1748		if (p->sched_contributes_to_load)
  1749			rq->nr_uninterruptible--;
  1750	
  1751		if (wake_flags & WF_MIGRATED)
  1752			en_flags |= ENQUEUE_MIGRATED;
  1753	#endif
  1754	
  1755		activate_task(rq, p, en_flags);
  1756		ttwu_do_wakeup(rq, p, wake_flags);
  1757	}
  1758	
  1759	/*
  1760	 * Called in case the task @p isn't fully descheduled from its runqueue,
  1761	 * in this case we must do a remote wakeup. Its a 'light' wakeup though,
  1762	 * since all we need to do is flip p->state to TASK_RUNNING, since
  1763	 * the task is still ->on_rq.
  1764	 */
  1765	static int ttwu_remote(struct task_struct *p, int wake_flags)
  1766	{
  1767		struct rq *rq;
  1768		int ret = 0;
  1769	
  1770		rq = __task_rq_lock(p, NULL);
  1771		if (likely(task_on_rq_queued(p))) {
  1772			ttwu_do_wakeup(rq, p, wake_flags);
  1773			ret = 1;
  1774		}
  1775		__task_rq_unlock(rq, NULL);
  1776	
  1777		return ret;
  1778	}
  1779	
  1780	#ifdef CONFIG_SMP
  1781	void sched_ttwu_pending(void)
  1782	{
  1783		struct rq *rq = this_rq();
  1784		struct llist_node *llist = llist_del_all(&rq->wake_list);
  1785		struct task_struct *p, *t;
  1786		struct rq_flags rf;
  1787	
  1788		if (!llist)
  1789			return;
  1790	
  1791		rq_lock_irqsave(rq, &rf);
  1792	
  1793		llist_for_each_entry_safe(p, t, llist, wake_entry)
  1794			ttwu_do_activate(rq, p, 0);
  1795	
  1796		rq_unlock_irqrestore(rq, &rf);
  1797	}
  1798	
  1799	void scheduler_ipi(void)
  1800	{
  1801		/*
  1802		 * Fold TIF_NEED_RESCHED into the preempt_count; anybody setting
  1803		 * TIF_NEED_RESCHED remotely (for the first time) will also send
  1804		 * this IPI.
  1805		 */
  1806		preempt_fold_need_resched();
  1807	
  1808		if (llist_empty(&this_rq()->wake_list) && (!idle_cpu(smp_processor_id()) || need_resched()))
  1809			return;
  1810	
  1811		/*
  1812		 * Not all reschedule IPI handlers call irq_enter/irq_exit, since
  1813		 * traditionally all their work was done from the interrupt return
  1814		 * path. Now that we actually do some work, we need to make sure
  1815		 * we do call them.
  1816		 *
  1817		 * Some archs already do call them, luckily irq_enter/exit nest
  1818		 * properly.
  1819		 *
  1820		 * Arguably we should visit all archs and update all handlers,
  1821		 * however a fair share of IPIs are still resched only so this would
  1822		 * somewhat pessimize the simple resched case.
  1823		 */
  1824		irq_enter();
  1825		sched_ttwu_pending();
  1826		irq_exit();
  1827	}
  1828	
  1829	static void ttwu_queue_remote(struct task_struct *p, int cpu, int wake_flags)
  1830	{
  1831		struct rq *rq = cpu_rq(cpu);
  1832	
  1833		if (llist_add(&p->wake_entry, &cpu_rq(cpu)->wake_list)) {
  1834			if (!set_nr_if_polling(rq->idle))
  1835				smp_sched_reschedule(cpu);
  1836			else
  1837				trace_sched_wake_idle_without_ipi(cpu);
  1838		}
  1839	}
  1840	
  1841	void wake_up_if_idle(int cpu)
  1842	{
  1843		struct rq *rq = cpu_rq(cpu);
  1844		struct rq_flags rf;
  1845	
  1846		rcu_read_lock();
  1847	
> 1848		if (!is_idle_task(rcu_dereference(rq->curr)))
  1849			goto out;
  1850	
  1851		if (set_nr_if_polling(rq->idle)) {
  1852			trace_sched_wake_idle_without_ipi(cpu);
  1853		} else {
  1854			rq_lock_irqsave(rq, &rf);
  1855			if (likely(is_idle_task(rq->curr)))
  1856				smp_sched_reschedule(cpu);
  1857			/* Else cpu is not in idle, do nothing here */
  1858			rq_unlock_irqrestore(rq, &rf);
  1859		}
  1860	
  1861	out:
  1862		rcu_read_unlock();
  1863	}
  1864	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-05-10  7:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-10  7:46 [zen-kernel-zen-kernel:5.6/muqss 1/18] kernel/sched/MuQSS.c:1707:17: sparse: sparse: incompatible types in comparison expression (different address spaces): kbuild 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.