All of lore.kernel.org
 help / color / mirror / Atom feed
* kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
@ 2022-06-27 16:55 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-06-27 16:55 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: Manual check reason: "low confidence static check warning: kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Peter Zijlstra <peterz@infradead.org>
CC: Kees Cook <keescook@chromium.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   03c765b0e3b4cb5063276b086c76f7a612856a9a
commit: 546a3fee174969ff323d70ff27b1ef181f0d7ceb sched: Reverse sched_class layout
date:   6 weeks ago
:::::: branch date: 19 hours ago
:::::: commit date: 6 weeks ago
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 546a3fee174969ff323d70ff27b1ef181f0d7ceb
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/core.c:5714:2: note: Comparing pointers that point to different objects
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2004:67: warning: Parameter 'p' can be declared with const [constParameter]
   static inline int task_current(struct rq *rq, struct task_struct *p)
                                                                     ^
   kernel/sched/core.c:2760:4: warning: Address of local auto-variable assigned to a function parameter. [autoVariables]
      p->migration_pending = &my_pending;
      ^
   kernel/sched/core.c:9130:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9130:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^

vim +5714 kernel/sched/core.c

457d1f465778ccb kernel/sched/core.c Chen Yu         2020-04-21  5679  
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5680  /*
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5681   * Pick up the highest-prio task:
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5682   */
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5683  static inline struct task_struct *
539f65125d20aac kernel/sched/core.c Peter Zijlstra  2020-11-17  5684  __pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5685  {
49ee576809d8374 kernel/sched/core.c Peter Zijlstra  2017-01-19  5686  	const struct sched_class *class;
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5687  	struct task_struct *p;
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5688  
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5689  	/*
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5690  	 * Optimization: we know that if all tasks are in the fair class we can
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5691  	 * call that function directly, but only if the @prev task wasn't of a
b19a888c1e9bdf1 kernel/sched/core.c Tal Zussman     2020-11-12  5692  	 * higher scheduling class, because otherwise those lose the
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5693  	 * opportunity to pull in more work from other CPUs.
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5694  	 */
546a3fee174969f kernel/sched/core.c Peter Zijlstra  2022-05-17  5695  	if (likely(!sched_class_above(prev->sched_class, &fair_sched_class) &&
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5696  		   rq->nr_running == rq->cfs.h_nr_running)) {
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5697  
5d7d605642b28a5 kernel/sched/core.c Peter Zijlstra  2019-11-08  5698  		p = pick_next_task_fair(rq, prev, rf);
6ccdc84b81a0a6c kernel/sched/core.c Peter Zijlstra  2014-04-24  5699  		if (unlikely(p == RETRY_TASK))
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5700  			goto restart;
6ccdc84b81a0a6c kernel/sched/core.c Peter Zijlstra  2014-04-24  5701  
1699949d3314e5d kernel/sched/core.c Masahiro Yamada 2021-05-19  5702  		/* Assume the next prioritized class is idle_sched_class */
5d7d605642b28a5 kernel/sched/core.c Peter Zijlstra  2019-11-08  5703  		if (!p) {
f488e1057bb97b8 kernel/sched/core.c Peter Zijlstra  2019-11-08  5704  			put_prev_task(rq, prev);
98c2f700edb413e kernel/sched/core.c Peter Zijlstra  2019-11-08  5705  			p = pick_next_task_idle(rq);
f488e1057bb97b8 kernel/sched/core.c Peter Zijlstra  2019-11-08  5706  		}
6ccdc84b81a0a6c kernel/sched/core.c Peter Zijlstra  2014-04-24  5707  
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5708  		return p;
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5709  	}
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5710  
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5711  restart:
457d1f465778ccb kernel/sched/core.c Chen Yu         2020-04-21  5712  	put_prev_task_balance(rq, prev, rf);
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5713  
34f971f6f7988be kernel/sched.c      Peter Zijlstra  2010-09-22 @5714  	for_each_class(class) {
98c2f700edb413e kernel/sched/core.c Peter Zijlstra  2019-11-08  5715  		p = class->pick_next_task(rq);
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5716  		if (p)
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5717  			return p;
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5718  	}
34f971f6f7988be kernel/sched.c      Peter Zijlstra  2010-09-22  5719  
bc9ffef31bf5981 kernel/sched/core.c Peter Zijlstra  2021-08-24  5720  	BUG(); /* The idle class should always have a runnable task. */
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5721  }
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5722  

:::::: The code at line 5714 was first introduced by commit
:::::: 34f971f6f7988be4d014eec3e3526bee6d007ffa sched: Create special class for stop/migrate work

:::::: TO: Peter Zijlstra <a.p.zijlstra@chello.nl>
:::::: CC: Ingo Molnar <mingo@elte.hu>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 4+ messages in thread

* kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
@ 2022-11-07 13:28 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-11-07 13:28 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "low confidence static check warning: kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Peter Zijlstra <peterz@infradead.org>
CC: Kees Cook <keescook@chromium.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f0c4d9fc9cc9462659728d168387191387e903cc
commit: 546a3fee174969ff323d70ff27b1ef181f0d7ceb sched: Reverse sched_class layout
date:   6 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 6 months ago
compiler: microblaze-linux-gcc (GCC) 12.1.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 546a3fee174969ff323d70ff27b1ef181f0d7ceb
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/core.c:5714:2: note: Comparing pointers that point to different objects
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2004:67: warning: Parameter 'p' can be declared as pointer to const [constParameter]
   static inline int task_current(struct rq *rq, struct task_struct *p)
                                                                     ^
   kernel/sched/core.c:5355:34: warning: Uninitialized variable: resched_latency [uninitvar]
    if (sched_feat(LATENCY_WARN) && resched_latency)
                                    ^
   kernel/sched/core.c:5348:6: note: Assuming condition is false
    if (sched_feat(LATENCY_WARN))
        ^
   kernel/sched/core.c:5355:34: note: Uninitialized variable: resched_latency
    if (sched_feat(LATENCY_WARN) && resched_latency)
                                    ^
   kernel/sched/core.c:2760:4: warning: Address of local auto-variable assigned to a function parameter. [autoVariables]
      p->migration_pending = &my_pending;
      ^
   kernel/sched/core.c:9130:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9130:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^

vim +5714 kernel/sched/core.c

457d1f465778cc kernel/sched/core.c Chen Yu         2020-04-21  5679  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5680  /*
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5681   * Pick up the highest-prio task:
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5682   */
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5683  static inline struct task_struct *
539f65125d20aa kernel/sched/core.c Peter Zijlstra  2020-11-17  5684  __pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5685  {
49ee576809d837 kernel/sched/core.c Peter Zijlstra  2017-01-19  5686  	const struct sched_class *class;
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5687  	struct task_struct *p;
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5688  
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5689  	/*
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5690  	 * Optimization: we know that if all tasks are in the fair class we can
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5691  	 * call that function directly, but only if the @prev task wasn't of a
b19a888c1e9bdf kernel/sched/core.c Tal Zussman     2020-11-12  5692  	 * higher scheduling class, because otherwise those lose the
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5693  	 * opportunity to pull in more work from other CPUs.
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5694  	 */
546a3fee174969 kernel/sched/core.c Peter Zijlstra  2022-05-17  5695  	if (likely(!sched_class_above(prev->sched_class, &fair_sched_class) &&
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5696  		   rq->nr_running == rq->cfs.h_nr_running)) {
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5697  
5d7d605642b28a kernel/sched/core.c Peter Zijlstra  2019-11-08  5698  		p = pick_next_task_fair(rq, prev, rf);
6ccdc84b81a0a6 kernel/sched/core.c Peter Zijlstra  2014-04-24  5699  		if (unlikely(p == RETRY_TASK))
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5700  			goto restart;
6ccdc84b81a0a6 kernel/sched/core.c Peter Zijlstra  2014-04-24  5701  
1699949d3314e5 kernel/sched/core.c Masahiro Yamada 2021-05-19  5702  		/* Assume the next prioritized class is idle_sched_class */
5d7d605642b28a kernel/sched/core.c Peter Zijlstra  2019-11-08  5703  		if (!p) {
f488e1057bb97b kernel/sched/core.c Peter Zijlstra  2019-11-08  5704  			put_prev_task(rq, prev);
98c2f700edb413 kernel/sched/core.c Peter Zijlstra  2019-11-08  5705  			p = pick_next_task_idle(rq);
f488e1057bb97b kernel/sched/core.c Peter Zijlstra  2019-11-08  5706  		}
6ccdc84b81a0a6 kernel/sched/core.c Peter Zijlstra  2014-04-24  5707  
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5708  		return p;
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5709  	}
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5710  
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5711  restart:
457d1f465778cc kernel/sched/core.c Chen Yu         2020-04-21  5712  	put_prev_task_balance(rq, prev, rf);
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5713  
34f971f6f7988b kernel/sched.c      Peter Zijlstra  2010-09-22 @5714  	for_each_class(class) {
98c2f700edb413 kernel/sched/core.c Peter Zijlstra  2019-11-08  5715  		p = class->pick_next_task(rq);
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5716  		if (p)
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5717  			return p;
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5718  	}
34f971f6f7988b kernel/sched.c      Peter Zijlstra  2010-09-22  5719  
bc9ffef31bf598 kernel/sched/core.c Peter Zijlstra  2021-08-24  5720  	BUG(); /* The idle class should always have a runnable task. */
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5721  }
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5722  

:::::: The code at line 5714 was first introduced by commit
:::::: 34f971f6f7988be4d014eec3e3526bee6d007ffa sched: Create special class for stop/migrate work

:::::: TO: Peter Zijlstra <a.p.zijlstra@chello.nl>
:::::: CC: Ingo Molnar <mingo@elte.hu>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 4+ messages in thread

* kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
@ 2022-07-13 23:15 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-07-13 23:15 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: Manual check reason: "low confidence static check warning: kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Peter Zijlstra <peterz@infradead.org>
CC: Kees Cook <keescook@chromium.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4a57a8400075bc5287c5c877702c68aeae2a033d
commit: 546a3fee174969ff323d70ff27b1ef181f0d7ceb sched: Reverse sched_class layout
date:   8 weeks ago
:::::: branch date: 4 hours ago
:::::: commit date: 8 weeks ago
compiler: powerpc-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 546a3fee174969ff323d70ff27b1ef181f0d7ceb
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/core.c:5714:2: note: Comparing pointers that point to different objects
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2004:67: warning: Parameter 'p' can be declared with const [constParameter]
   static inline int task_current(struct rq *rq, struct task_struct *p)
                                                                     ^
   kernel/sched/core.c:2760:4: warning: Address of local auto-variable assigned to a function parameter. [autoVariables]
      p->migration_pending = &my_pending;
      ^
   kernel/sched/core.c:9130:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9130:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^

vim +5714 kernel/sched/core.c

457d1f465778cc kernel/sched/core.c Chen Yu         2020-04-21  5679  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5680  /*
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5681   * Pick up the highest-prio task:
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5682   */
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5683  static inline struct task_struct *
539f65125d20aa kernel/sched/core.c Peter Zijlstra  2020-11-17  5684  __pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5685  {
49ee576809d837 kernel/sched/core.c Peter Zijlstra  2017-01-19  5686  	const struct sched_class *class;
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5687  	struct task_struct *p;
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5688  
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5689  	/*
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5690  	 * Optimization: we know that if all tasks are in the fair class we can
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5691  	 * call that function directly, but only if the @prev task wasn't of a
b19a888c1e9bdf kernel/sched/core.c Tal Zussman     2020-11-12  5692  	 * higher scheduling class, because otherwise those lose the
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5693  	 * opportunity to pull in more work from other CPUs.
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5694  	 */
546a3fee174969 kernel/sched/core.c Peter Zijlstra  2022-05-17  5695  	if (likely(!sched_class_above(prev->sched_class, &fair_sched_class) &&
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5696  		   rq->nr_running == rq->cfs.h_nr_running)) {
0ba87bb27d66b7 kernel/sched/core.c Peter Zijlstra  2017-03-01  5697  
5d7d605642b28a kernel/sched/core.c Peter Zijlstra  2019-11-08  5698  		p = pick_next_task_fair(rq, prev, rf);
6ccdc84b81a0a6 kernel/sched/core.c Peter Zijlstra  2014-04-24  5699  		if (unlikely(p == RETRY_TASK))
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5700  			goto restart;
6ccdc84b81a0a6 kernel/sched/core.c Peter Zijlstra  2014-04-24  5701  
1699949d3314e5 kernel/sched/core.c Masahiro Yamada 2021-05-19  5702  		/* Assume the next prioritized class is idle_sched_class */
5d7d605642b28a kernel/sched/core.c Peter Zijlstra  2019-11-08  5703  		if (!p) {
f488e1057bb97b kernel/sched/core.c Peter Zijlstra  2019-11-08  5704  			put_prev_task(rq, prev);
98c2f700edb413 kernel/sched/core.c Peter Zijlstra  2019-11-08  5705  			p = pick_next_task_idle(rq);
f488e1057bb97b kernel/sched/core.c Peter Zijlstra  2019-11-08  5706  		}
6ccdc84b81a0a6 kernel/sched/core.c Peter Zijlstra  2014-04-24  5707  
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5708  		return p;
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5709  	}
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5710  
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5711  restart:
457d1f465778cc kernel/sched/core.c Chen Yu         2020-04-21  5712  	put_prev_task_balance(rq, prev, rf);
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5713  
34f971f6f7988b kernel/sched.c      Peter Zijlstra  2010-09-22 @5714  	for_each_class(class) {
98c2f700edb413 kernel/sched/core.c Peter Zijlstra  2019-11-08  5715  		p = class->pick_next_task(rq);
67692435c411e5 kernel/sched/core.c Peter Zijlstra  2019-05-29  5716  		if (p)
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5717  			return p;
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5718  	}
34f971f6f7988b kernel/sched.c      Peter Zijlstra  2010-09-22  5719  
bc9ffef31bf598 kernel/sched/core.c Peter Zijlstra  2021-08-24  5720  	BUG(); /* The idle class should always have a runnable task. */
dd41f596cda0d7 kernel/sched.c      Ingo Molnar     2007-07-09  5721  }
^1da177e4c3f41 kernel/sched.c      Linus Torvalds  2005-04-16  5722  

:::::: The code at line 5714 was first introduced by commit
:::::: 34f971f6f7988be4d014eec3e3526bee6d007ffa sched: Create special class for stop/migrate work

:::::: TO: Peter Zijlstra <a.p.zijlstra@chello.nl>
:::::: CC: Ingo Molnar <mingo@elte.hu>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 4+ messages in thread

* kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
@ 2022-06-10  4:36 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-06-10  4:36 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: Manual check reason: "low confidence static check warning: kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Peter Zijlstra <peterz@infradead.org>
CC: Kees Cook <keescook@chromium.org>

Hi Peter,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   874c8ca1e60b2c564a48f7e7acc40d328d5c8733
commit: 546a3fee174969ff323d70ff27b1ef181f0d7ceb sched: Reverse sched_class layout
date:   3 weeks ago
:::::: branch date: 8 hours ago
:::::: commit date: 3 weeks ago
compiler: arceb-elf-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 546a3fee174969ff323d70ff27b1ef181f0d7ceb
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>


cppcheck warnings: (new ones prefixed by >>)
>> mm/huge_memory.c:1719:15: warning: Local variable 'entry' shadows outer variable [shadowVariable]
     swp_entry_t entry = pmd_to_swp_entry(*pmd);
                 ^
   mm/huge_memory.c:1700:8: note: Shadowed declaration
    pmd_t entry;
          ^
   mm/huge_memory.c:1719:15: note: Shadow variable
     swp_entry_t entry = pmd_to_swp_entry(*pmd);
                 ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> mm/vmstat.c:1406:53: warning: Parameter 'pos' can be declared with const [constParameter]
   static void *frag_start(struct seq_file *m, loff_t *pos)
                                                       ^
>> mm/vmstat.c:1647:68: warning: Parameter 'zone' can be declared with const [constParameter]
   static bool is_zone_first_populated(pg_data_t *pgdat, struct zone *zone)
                                                                      ^
   mm/vmstat.c:1777:55: warning: Parameter 'pos' can be declared with const [constParameter]
   static void *vmstat_start(struct seq_file *m, loff_t *pos)
                                                         ^
>> mm/swap.c:600:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:598:25: note: Address of variable taken here.
    struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu);
                           ^
   mm/swap.c:598:33: note: Temporary created here.
    struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu);
                                   ^
   mm/swap.c:600:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:605:30: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (data_race(pagevec_count(pvec))) {
                                ^
   mm/swap.c:603:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_rotate.pvec, cpu);
           ^
   mm/swap.c:603:17: note: Temporary created here.
    pvec = &per_cpu(lru_rotate.pvec, cpu);
                   ^
   mm/swap.c:605:30: note: Using pointer that is a temporary.
    if (data_race(pagevec_count(pvec))) {
                                ^
   mm/swap.c:615:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:614:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu);
           ^
   mm/swap.c:614:17: note: Temporary created here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu);
                   ^
   mm/swap.c:615:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:619:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:618:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu);
           ^
   mm/swap.c:618:17: note: Temporary created here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu);
                   ^
   mm/swap.c:619:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:623:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:622:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu);
           ^
   mm/swap.c:622:17: note: Temporary created here.
    pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu);
                   ^
   mm/swap.c:623:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
>> mm/huge_memory.c:1615:54: warning: Parameter 'new_pmd_ptl' can be declared with const [constParameter]
   static inline int pmd_move_must_withdraw(spinlock_t *new_pmd_ptl,
                                                        ^
>> mm/huge_memory.c:1616:19: warning: Parameter 'old_pmd_ptl' can be declared with const [constParameter]
         spinlock_t *old_pmd_ptl,
                     ^
>> mm/huge_memory.c:2973:9: warning: Local variable 'buf' shadows outer argument [shadowArgument]
     char *buf = input_buf;
           ^
   mm/huge_memory.c:2949:77: note: Shadowed declaration
   static ssize_t split_huge_pages_write(struct file *file, const char __user *buf,
                                                                               ^
   mm/huge_memory.c:2973:9: note: Shadow variable
     char *buf = input_buf;
           ^
>> kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers]
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:5714:2: note: Array decayed to pointer here.
    for_each_class(class) {
    ^
   kernel/sched/core.c:5714:2: note: Comparing pointers that point to different objects
    for_each_class(class) {
    ^
   kernel/sched/sched.h:2004:67: warning: Parameter 'p' can be declared with const [constParameter]
   static inline int task_current(struct rq *rq, struct task_struct *p)
                                                                     ^
   kernel/sched/core.c:2760:4: warning: Address of local auto-variable assigned to a function parameter. [autoVariables]
      p->migration_pending = &my_pending;
      ^
   kernel/sched/core.c:9130:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9130:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9130:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: warning: Comparing pointers that point to different objects [comparePointers]
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2190:27: note: Variable declared here.
   extern struct sched_class __sched_class_highest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/sched.h:2191:27: note: Variable declared here.
   extern struct sched_class __sched_class_lowest[];
                             ^
   kernel/sched/core.c:9142:3: note: Array decayed to pointer here.
     for_each_class(class) {
     ^
   kernel/sched/core.c:9142:3: note: Comparing pointers that point to different objects
     for_each_class(class) {
     ^

vim +5714 kernel/sched/core.c

457d1f465778ccb kernel/sched/core.c Chen Yu         2020-04-21  5679  
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5680  /*
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5681   * Pick up the highest-prio task:
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5682   */
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5683  static inline struct task_struct *
539f65125d20aac kernel/sched/core.c Peter Zijlstra  2020-11-17  5684  __pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5685  {
49ee576809d8374 kernel/sched/core.c Peter Zijlstra  2017-01-19  5686  	const struct sched_class *class;
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5687  	struct task_struct *p;
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5688  
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5689  	/*
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5690  	 * Optimization: we know that if all tasks are in the fair class we can
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5691  	 * call that function directly, but only if the @prev task wasn't of a
b19a888c1e9bdf1 kernel/sched/core.c Tal Zussman     2020-11-12  5692  	 * higher scheduling class, because otherwise those lose the
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5693  	 * opportunity to pull in more work from other CPUs.
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5694  	 */
546a3fee174969f kernel/sched/core.c Peter Zijlstra  2022-05-17  5695  	if (likely(!sched_class_above(prev->sched_class, &fair_sched_class) &&
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5696  		   rq->nr_running == rq->cfs.h_nr_running)) {
0ba87bb27d66b78 kernel/sched/core.c Peter Zijlstra  2017-03-01  5697  
5d7d605642b28a5 kernel/sched/core.c Peter Zijlstra  2019-11-08  5698  		p = pick_next_task_fair(rq, prev, rf);
6ccdc84b81a0a6c kernel/sched/core.c Peter Zijlstra  2014-04-24  5699  		if (unlikely(p == RETRY_TASK))
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5700  			goto restart;
6ccdc84b81a0a6c kernel/sched/core.c Peter Zijlstra  2014-04-24  5701  
1699949d3314e5d kernel/sched/core.c Masahiro Yamada 2021-05-19  5702  		/* Assume the next prioritized class is idle_sched_class */
5d7d605642b28a5 kernel/sched/core.c Peter Zijlstra  2019-11-08  5703  		if (!p) {
f488e1057bb97b8 kernel/sched/core.c Peter Zijlstra  2019-11-08  5704  			put_prev_task(rq, prev);
98c2f700edb413e kernel/sched/core.c Peter Zijlstra  2019-11-08  5705  			p = pick_next_task_idle(rq);
f488e1057bb97b8 kernel/sched/core.c Peter Zijlstra  2019-11-08  5706  		}
6ccdc84b81a0a6c kernel/sched/core.c Peter Zijlstra  2014-04-24  5707  
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5708  		return p;
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5709  	}
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5710  
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5711  restart:
457d1f465778ccb kernel/sched/core.c Chen Yu         2020-04-21  5712  	put_prev_task_balance(rq, prev, rf);
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5713  
34f971f6f7988be kernel/sched.c      Peter Zijlstra  2010-09-22 @5714  	for_each_class(class) {
98c2f700edb413e kernel/sched/core.c Peter Zijlstra  2019-11-08  5715  		p = class->pick_next_task(rq);
67692435c411e5c kernel/sched/core.c Peter Zijlstra  2019-05-29  5716  		if (p)
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5717  			return p;
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5718  	}
34f971f6f7988be kernel/sched.c      Peter Zijlstra  2010-09-22  5719  
bc9ffef31bf5981 kernel/sched/core.c Peter Zijlstra  2021-08-24  5720  	BUG(); /* The idle class should always have a runnable task. */
dd41f596cda0d7d kernel/sched.c      Ingo Molnar     2007-07-09  5721  }
^1da177e4c3f415 kernel/sched.c      Linus Torvalds  2005-04-16  5722  

:::::: The code at line 5714 was first introduced by commit
:::::: 34f971f6f7988be4d014eec3e3526bee6d007ffa sched: Create special class for stop/migrate work

:::::: TO: Peter Zijlstra <a.p.zijlstra@chello.nl>
:::::: CC: Ingo Molnar <mingo@elte.hu>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-11-07 13:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-27 16:55 kernel/sched/core.c:5714:2: warning: Comparing pointers that point to different objects [comparePointers] kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-11-07 13:28 kernel test robot
2022-07-13 23:15 kernel test robot
2022-06-10  4:36 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.