All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Yafang Shao <laoar.shao@gmail.com>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>
Subject: [peterz-queue:sched/core 13/19] kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444)
Date: Mon, 13 Sep 2021 11:47:51 +0300	[thread overview]
Message-ID: <202109111001.XChyxkS3-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core
head:   2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d
commit: 445d9e8ba05d5e9e4b26956b7fe529223e29d8d1 [13/19] sched: make struct sched_statistics independent of fair sched class
config: x86_64-randconfig-m001-20210910 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444)

vim +/se +453 kernel/sched/debug.c

3866e845ed5222 kernel/sched/debug.c Steven Rostedt (Red Hat  2016-02-22  439) 
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  440  #ifdef CONFIG_FAIR_GROUP_SCHED
5091faa449ee0b kernel/sched_debug.c Mike Galbraith           2010-11-30  441  static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group *tg)
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  442  {
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  443  	struct sched_entity *se = tg->se[cpu];
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05 @444  	struct sched_statistics *stats = __schedstats_from_se(se);
                                                                                                                                      ^^
New unchecked dereference.

ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  445  
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  446  #define P(F)		SEQ_printf(m, "  .%-30s: %lld\n",	#F, (long long)F)
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  447  #define P_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld\n",	\
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  448  		#F, (long long)schedstat_val(stats->F))
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  449  #define PN(F)		SEQ_printf(m, "  .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F))
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  450  #define PN_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld.%06ld\n", \
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  451  		#F, SPLIT_NS((long long)schedstat_val(stats->F)))
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  452  
cd126afe838d7e kernel/sched/debug.c Yuyang Du                2015-07-15 @453  	if (!se)
                                                                                    ^^^
The old code assumed "se" can be NULL.

18bf2805d9b30c kernel/sched/debug.c Ben Segall               2012-10-04  454  		return;
18bf2805d9b30c kernel/sched/debug.c Ben Segall               2012-10-04  455  
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  456  	PN(se->exec_start);
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  457  	PN(se->vruntime);

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


WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [peterz-queue:sched/core 13/19] kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444)
Date: Sat, 11 Sep 2021 10:52:12 +0800	[thread overview]
Message-ID: <202109111001.XChyxkS3-lkp@intel.com> (raw)

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Yafang Shao <laoar.shao@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core
head:   2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d
commit: 445d9e8ba05d5e9e4b26956b7fe529223e29d8d1 [13/19] sched: make struct sched_statistics independent of fair sched class
:::::: branch date: 10 hours ago
:::::: commit date: 10 hours ago
config: x86_64-randconfig-m001-20210910 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444)

vim +/se +453 kernel/sched/debug.c

3866e845ed5222 kernel/sched/debug.c Steven Rostedt (Red Hat  2016-02-22  439) 
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  440  #ifdef CONFIG_FAIR_GROUP_SCHED
5091faa449ee0b kernel/sched_debug.c Mike Galbraith           2010-11-30  441  static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group *tg)
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  442  {
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  443  	struct sched_entity *se = tg->se[cpu];
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05 @444  	struct sched_statistics *stats = __schedstats_from_se(se);
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  445  
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  446  #define P(F)		SEQ_printf(m, "  .%-30s: %lld\n",	#F, (long long)F)
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  447  #define P_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld\n",	\
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  448  		#F, (long long)schedstat_val(stats->F))
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  449  #define PN(F)		SEQ_printf(m, "  .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F))
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  450  #define PN_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld.%06ld\n", \
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  451  		#F, SPLIT_NS((long long)schedstat_val(stats->F)))
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  452  
cd126afe838d7e kernel/sched/debug.c Yuyang Du                2015-07-15 @453  	if (!se)
18bf2805d9b30c kernel/sched/debug.c Ben Segall               2012-10-04  454  		return;
18bf2805d9b30c kernel/sched/debug.c Ben Segall               2012-10-04  455  
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  456  	PN(se->exec_start);
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  457  	PN(se->vruntime);
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  458  	PN(se->sum_exec_runtime);
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  459  
cb2517653fccaf kernel/sched/debug.c Mel Gorman               2016-02-05  460  	if (schedstat_enabled()) {
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  461  		PN_SCHEDSTAT(wait_start);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  462  		PN_SCHEDSTAT(sleep_start);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  463  		PN_SCHEDSTAT(block_start);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  464  		PN_SCHEDSTAT(sleep_max);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  465  		PN_SCHEDSTAT(block_max);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  466  		PN_SCHEDSTAT(exec_max);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  467  		PN_SCHEDSTAT(slice_max);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  468  		PN_SCHEDSTAT(wait_max);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  469  		PN_SCHEDSTAT(wait_sum);
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  470  		P_SCHEDSTAT(wait_count);
cb2517653fccaf kernel/sched/debug.c Mel Gorman               2016-02-05  471  	}
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  472  
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  473  	P(se->load.weight);
9d85f21c94f7f7 kernel/sched/debug.c Paul Turner              2012-10-04  474  #ifdef CONFIG_SMP
9d89c257dfb9c5 kernel/sched/debug.c Yuyang Du                2015-07-15  475  	P(se->avg.load_avg);
9d89c257dfb9c5 kernel/sched/debug.c Yuyang Du                2015-07-15  476  	P(se->avg.util_avg);
9f68395333ad7f kernel/sched/debug.c Vincent Guittot          2020-02-24  477  	P(se->avg.runnable_avg);
9d85f21c94f7f7 kernel/sched/debug.c Paul Turner              2012-10-04  478  #endif
4fa8d299b43a91 kernel/sched/debug.c Josh Poimboeuf           2016-06-17  479  

:::::: The code at line 453 was first introduced by commit
:::::: cd126afe838d7ea9b971cdea087fd498a7293c7f sched/fair: Remove rq's runnable avg

:::::: TO: Yuyang Du <yuyang.du@intel.com>
:::::: CC: Ingo Molnar <mingo@kernel.org>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 29328 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [peterz-queue:sched/core 13/19] kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444)
Date: Mon, 13 Sep 2021 11:47:51 +0300	[thread overview]
Message-ID: <202109111001.XChyxkS3-lkp@intel.com> (raw)

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core
head:   2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d
commit: 445d9e8ba05d5e9e4b26956b7fe529223e29d8d1 [13/19] sched: make struct sched_statistics independent of fair sched class
config: x86_64-randconfig-m001-20210910 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444)

vim +/se +453 kernel/sched/debug.c

3866e845ed5222 kernel/sched/debug.c Steven Rostedt (Red Hat  2016-02-22  439) 
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  440  #ifdef CONFIG_FAIR_GROUP_SCHED
5091faa449ee0b kernel/sched_debug.c Mike Galbraith           2010-11-30  441  static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group *tg)
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  442  {
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  443  	struct sched_entity *se = tg->se[cpu];
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05 @444  	struct sched_statistics *stats = __schedstats_from_se(se);
                                                                                                                                      ^^
New unchecked dereference.

ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  445  
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  446  #define P(F)		SEQ_printf(m, "  .%-30s: %lld\n",	#F, (long long)F)
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  447  #define P_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld\n",	\
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  448  		#F, (long long)schedstat_val(stats->F))
97fb7a0a8944bd kernel/sched/debug.c Ingo Molnar              2018-03-03  449  #define PN(F)		SEQ_printf(m, "  .%-30s: %lld.%06ld\n", #F, SPLIT_NS((long long)F))
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  450  #define PN_SCHEDSTAT(F)	SEQ_printf(m, "  .%-30s: %lld.%06ld\n", \
445d9e8ba05d5e kernel/sched/debug.c Yafang Shao              2021-09-05  451  		#F, SPLIT_NS((long long)schedstat_val(stats->F)))
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  452  
cd126afe838d7e kernel/sched/debug.c Yuyang Du                2015-07-15 @453  	if (!se)
                                                                                    ^^^
The old code assumed "se" can be NULL.

18bf2805d9b30c kernel/sched/debug.c Ben Segall               2012-10-04  454  		return;
18bf2805d9b30c kernel/sched/debug.c Ben Segall               2012-10-04  455  
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  456  	PN(se->exec_start);
ff9b48c3598732 kernel/sched_debug.c Bharata B Rao            2008-11-10  457  	PN(se->vruntime);

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

             reply	other threads:[~2021-09-13  8:48 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-11  2:52 kernel test robot [this message]
2021-09-13  8:47 ` [peterz-queue:sched/core 13/19] kernel/sched/debug.c:453 print_cfs_group_stats() warn: variable dereferenced before check 'se' (see line 444) Dan Carpenter
2021-09-13  8:47 ` Dan Carpenter
2021-09-13 11:04 ` Yafang Shao
2021-09-13 11:04   ` Yafang Shao
2021-09-13 12:02   ` Peter Zijlstra
2021-09-13 12:02     ` Peter Zijlstra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202109111001.XChyxkS3-lkp@intel.com \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=laoar.shao@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.