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
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: 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: 6768 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(a)lists.01.org
_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28871 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
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: 6768 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(a)lists.01.org
_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 28871 bytes --]
next prev parent reply other threads:[~2021-02-10 9:14 UTC|newest]
Thread overview: 34+ 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-10 9:00 ` [kbuild] " Dan Carpenter
2021-02-10 9:00 ` Dan Carpenter
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-14 14:09 ` kernel test robot
2021-02-26 3:22 ` Andreas Dilger
2021-03-03 2:56 ` Oliver Sang
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 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.