linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org,
	Harshad Shirwadkar <harshadshirwadkar@gmail.com>,
	linux-ext4@vger.kernel.org
Cc: lkp@intel.com, kbuild-all@lists.01.org, tytso@mit.edu,
	bzzz@whamcloud.com, artem.blagodarenko@gmail.com, sihara@ddn.com,
	adilger@dilger.ca,
	Harshad Shirwadkar <harshadshirwadkar@gmail.com>
Subject: [kbuild] Re: [PATCH v2 4/5] ext4: improve cr 0 / cr 1 group scanning
Date: Wed, 10 Feb 2021 12:00:02 +0300	[thread overview]
Message-ID: <20210210090002.GT20820@kadam> (raw)
In-Reply-To: <20210209202857.4185846-5-harshadshirwadkar@gmail.com>

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

Hi Harshad,

url:    https://github.com/0day-ci/linux/commits/Harshad-Shirwadkar/ext4-drop-s_mb_bal_lock-and-convert-protected-fields-to-atomic/20210210-054647 
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git  dev
config: s390-randconfig-m031-20210209 (attached as .config)
compiler: s390-linux-gcc (GCC) 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>

New smatch warnings:
fs/ext4/mballoc.c:930 ext4_mb_choose_next_group_cr1() error: uninitialized symbol 'avg_fragment_size'.

vim +/avg_fragment_size +930 fs/ext4/mballoc.c

ef4eebad9c018a Harshad Shirwadkar 2021-02-09  878  static int ext4_mb_choose_next_group_cr1(struct ext4_allocation_context *ac,
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  879  		int *new_cr, ext4_group_t *group, ext4_group_t ngroups)
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  880  {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  881  	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  882  	int avg_fragment_size, best_so_far;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  883  	struct rb_node *node, *found;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  884  	struct ext4_group_info *grp;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  885  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  886  	/*
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  887  	 * If there is contention on the lock, instead of waiting for the lock
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  888  	 * to become available, just continue searching lineraly. We'll resume
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  889  	 * our rb tree search later starting at ac->ac_last_optimal_group.
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  890  	 */
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  891  	if (!read_trylock(&sbi->s_mb_rb_lock))
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  892  		return 1;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  893  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  894  	if (ac->ac_flags & EXT4_MB_CR1_OPTIMIZED) {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  895  		/* We have found something at CR 1 in the past */
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  896  		grp = ext4_get_group_info(ac->ac_sb, ac->ac_last_optimal_group);
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  897  		for (found = rb_next(&grp->bb_avg_fragment_size_rb); found != NULL;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  898  		     found = rb_next(found)) {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  899  			grp = rb_entry(found, struct ext4_group_info,
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  900  				       bb_avg_fragment_size_rb);
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  901  			/*
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  902  			 * Perform this check without locking, we'll lock later
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  903  			 * to confirm.
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  904  			 */
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  905  			if (likely(ext4_mb_good_group(ac, grp->bb_group, 1)))
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  906  				break;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  907  		}
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  908  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  909  		goto done;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  910  	}
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  911  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  912  	node = sbi->s_mb_avg_fragment_size_root.rb_node;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  913  	best_so_far = 0;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  914  	found = NULL;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  915  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  916  	while (node) {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  917  		grp = rb_entry(node, struct ext4_group_info,
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  918  			       bb_avg_fragment_size_rb);
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  919  		/*
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  920  		 * Perform this check without locking, we'll lock later to confirm.
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  921  		 */
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  922  		if (ext4_mb_good_group(ac, grp->bb_group, 1)) {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  923  			avg_fragment_size = grp->bb_fragments ?
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  924  				grp->bb_free / grp->bb_fragments : 0;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  925  			if (!best_so_far || avg_fragment_size < best_so_far) {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  926  				best_so_far = avg_fragment_size;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  927  				found = node;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  928  			}
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  929  		}

avg_fragment_size not initialized on else path.

ef4eebad9c018a Harshad Shirwadkar 2021-02-09 @930  		if (avg_fragment_size > ac->ac_g_ex.fe_len)
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  931  			node = node->rb_right;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  932  		else
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  933  			node = node->rb_left;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  934  	}
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  935  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  936  done:
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  937  	if (found) {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  938  		grp = rb_entry(found, struct ext4_group_info,
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  939  			       bb_avg_fragment_size_rb);
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  940  		*group = grp->bb_group;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  941  		ac->ac_flags |= EXT4_MB_CR1_OPTIMIZED;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  942  	} else {
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  943  		*new_cr = 2;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  944  	}
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  945  
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  946  	read_unlock(&sbi->s_mb_rb_lock);
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  947  	ac->ac_last_optimal_group = *group;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  948  	return 0;
ef4eebad9c018a Harshad Shirwadkar 2021-02-09  949  }

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

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

[-- Attachment #3: Type: text/plain, Size: 149 bytes --]

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-leave@lists.01.org

  reply	other threads:[~2021-02-10  9:14 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-09 20:28 Improve group scanning in mballoc Harshad Shirwadkar
2021-02-09 20:28 ` [PATCH v2 1/5] ext4: drop s_mb_bal_lock and convert protected fields to atomic Harshad Shirwadkar
2021-02-09 20:28 ` [PATCH v2 2/5] ext4: add mballoc stats proc file Harshad Shirwadkar
2021-02-11 23:49   ` Andreas Dilger
2021-02-12 16:52   ` Благодаренко Артём
2021-02-12 17:15     ` harshad shirwadkar
2021-02-09 20:28 ` [PATCH v2 3/5] ext4: add MB_NUM_ORDERS macro Harshad Shirwadkar
2021-02-16 10:45   ` Благодаренко Артём
2021-02-26  2:36     ` harshad shirwadkar
2021-02-09 20:28 ` [PATCH v2 4/5] ext4: improve cr 0 / cr 1 group scanning Harshad Shirwadkar
2021-02-10  9:00   ` Dan Carpenter [this message]
2021-02-11  7:43   ` Alexey Lyashkov
2021-02-11  7:53     ` Alex Zhuravlev
2021-02-11 10:13       ` Alexey Lyashkov
2021-02-11 10:30   ` Andreas Dilger
2021-02-12 22:46   ` Andreas Dilger
2021-02-14 14:09   ` [ext4] ef4eebad9c: fxmark.hdd_ext4_no_jnl_MWCL_1_bufferedio.works/sec -9.8% regression kernel test robot
2021-02-26  3:22     ` Andreas Dilger
2021-03-03  2:56       ` Oliver Sang
2021-02-16 19:39   ` [PATCH v2 4/5] ext4: improve cr 0 / cr 1 group scanning Благодаренко Артём
2021-02-16 22:36     ` Andreas Dilger
2021-02-22  3:59       ` harshad shirwadkar
2021-02-23 18:39         ` harshad shirwadkar
2021-02-26  3:43         ` Andreas Dilger
2021-02-26  4:06           ` harshad shirwadkar
2021-02-26  4:42             ` Andreas Dilger
2021-02-17 19:41   ` Благодаренко Артём
2021-02-09 20:28 ` [PATCH v2 5/5] ext4: add proc files to monitor new structures Harshad Shirwadkar
2021-02-12 22:36   ` Andreas Dilger
2021-02-16 16:55     ` harshad shirwadkar

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=20210210090002.GT20820@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=adilger@dilger.ca \
    --cc=artem.blagodarenko@gmail.com \
    --cc=bzzz@whamcloud.com \
    --cc=harshadshirwadkar@gmail.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=sihara@ddn.com \
    --cc=tytso@mit.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).