From: kernel test robot <lkp@intel.com> To: Harshad Shirwadkar <harshadshirwadkar@gmail.com>, linux-ext4@vger.kernel.org Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com, tytso@mit.edu, Harshad Shirwadkar <harshadshirwadkar@gmail.com> Subject: Re: [PATCH v9 5/9] ext4: main fast-commit commit path Date: Sat, 19 Sep 2020 16:19:03 +0800 [thread overview] Message-ID: <202009191602.OLtP5Go5%lkp@intel.com> (raw) In-Reply-To: <20200919005451.3899779-6-harshadshirwadkar@gmail.com> [-- Attachment #1: Type: text/plain, Size: 7485 bytes --] Hi Harshad, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on ext4/dev] [also build test WARNING on linus/master v5.9-rc5 next-20200918] [cannot apply to tip/perf/core] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Harshad-Shirwadkar/ext4-add-fast-commits-feature/20200919-085652 base: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev config: x86_64-randconfig-a006-20200917 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed79827aea444e6995fb3d36abc2bfd36331773c) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> fs/ext4/fast_commit.c:1079:6: warning: variable 'start_time' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/fast_commit.c:1135:51: note: uninitialized use occurs here commit_time = ktime_to_ns(ktime_sub(ktime_get(), start_time)); ^~~~~~~~~~ include/linux/ktime.h:46:39: note: expanded from macro 'ktime_sub' #define ktime_sub(lhs, rhs) ((lhs) - (rhs)) ^~~ fs/ext4/fast_commit.c:1079:2: note: remove the 'if' if its condition is always false if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> fs/ext4/fast_commit.c:1079:6: warning: variable 'start_time' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized] if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/fast_commit.c:1135:51: note: uninitialized use occurs here commit_time = ktime_to_ns(ktime_sub(ktime_get(), start_time)); ^~~~~~~~~~ include/linux/ktime.h:46:39: note: expanded from macro 'ktime_sub' #define ktime_sub(lhs, rhs) ((lhs) - (rhs)) ^~~ fs/ext4/fast_commit.c:1079:6: note: remove the '||' if its condition is always false if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/fast_commit.c:1075:20: note: initialize the variable 'start_time' to silence this warning ktime_t start_time, commit_time; ^ = 0 2 warnings generated. # https://github.com/0day-ci/linux/commit/2384cbfbcf98b789d426c39b458c52adbb36d4f9 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Harshad-Shirwadkar/ext4-add-fast-commits-feature/20200919-085652 git checkout 2384cbfbcf98b789d426c39b458c52adbb36d4f9 vim +1079 fs/ext4/fast_commit.c 1061 1062 /* 1063 * The main commit entry point. Performs a fast commit for transaction 1064 * commit_tid if needed. If it's not possible to perform a fast commit 1065 * due to various reasons, we fall back to full commit. Returns 0 1066 * on success, error otherwise. 1067 */ 1068 int ext4_fc_commit(journal_t *journal, tid_t commit_tid) 1069 { 1070 struct super_block *sb = (struct super_block *)(journal->j_private); 1071 struct ext4_sb_info *sbi = EXT4_SB(sb); 1072 int nblks = 0, ret, bsize = journal->j_blocksize; 1073 int subtid = atomic_read(&sbi->s_fc_subtid); 1074 int reason = EXT4_FC_REASON_OK, fc_bufs_before = 0; 1075 ktime_t start_time, commit_time; 1076 1077 trace_ext4_fc_commit_start(sb); 1078 > 1079 if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || 1080 (ext4_fc_is_ineligible(sb))) { 1081 reason = EXT4_FC_REASON_INELIGIBLE; 1082 goto out; 1083 } 1084 1085 start_time = ktime_get(); 1086 restart_fc: 1087 ret = jbd2_fc_start(journal, commit_tid); 1088 if (ret == -EALREADY) { 1089 /* There was an ongoing commit, check if we need to restart */ 1090 if (atomic_read(&sbi->s_fc_subtid) <= subtid && 1091 commit_tid > journal->j_commit_sequence) 1092 goto restart_fc; 1093 reason = EXT4_FC_REASON_ALREADY_COMMITTED; 1094 goto out; 1095 } else if (ret) { 1096 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1097 reason = EXT4_FC_REASON_FC_START_FAILED; 1098 goto out; 1099 } 1100 1101 fc_bufs_before = (sbi->s_fc_bytes + bsize - 1) / bsize; 1102 ret = ext4_fc_perform_commit(journal); 1103 if (ret < 0) { 1104 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1105 reason = EXT4_FC_REASON_FC_FAILED; 1106 goto out; 1107 } 1108 nblks = (sbi->s_fc_bytes + bsize - 1) / bsize - fc_bufs_before; 1109 ret = jbd2_fc_wait_bufs(journal, nblks); 1110 if (ret < 0) { 1111 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1112 reason = EXT4_FC_REASON_FC_FAILED; 1113 goto out; 1114 } 1115 atomic_inc(&sbi->s_fc_subtid); 1116 jbd2_fc_stop(journal); 1117 out: 1118 /* Has any ineligible update happened since we started? */ 1119 if (reason == EXT4_FC_REASON_OK && ext4_fc_is_ineligible(sb)) { 1120 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1121 reason = EXT4_FC_REASON_INELIGIBLE; 1122 } 1123 1124 spin_lock(&sbi->s_fc_lock); 1125 if (reason != EXT4_FC_REASON_OK && 1126 reason != EXT4_FC_REASON_ALREADY_COMMITTED) { 1127 sbi->s_fc_stats.fc_ineligible_commits++; 1128 } else { 1129 sbi->s_fc_stats.fc_num_commits++; 1130 sbi->s_fc_stats.fc_numblks += nblks; 1131 } 1132 spin_unlock(&sbi->s_fc_lock); 1133 nblks = (reason == EXT4_FC_REASON_OK) ? nblks : 0; 1134 trace_ext4_fc_commit_stop(sb, nblks, reason); 1135 commit_time = ktime_to_ns(ktime_sub(ktime_get(), start_time)); 1136 /* 1137 * weight the commit time higher than the average time so we don't 1138 * react too strongly to vast changes in the commit time 1139 */ 1140 if (likely(sbi->s_fc_avg_commit_time)) 1141 sbi->s_fc_avg_commit_time = (commit_time + 1142 sbi->s_fc_avg_commit_time * 3) / 4; 1143 else 1144 sbi->s_fc_avg_commit_time = commit_time; 1145 jbd_debug(1, 1146 "Fast commit ended with blks = %d, reason = %d, subtid - %d", 1147 nblks, reason, subtid); 1148 if (reason == EXT4_FC_REASON_FC_FAILED) 1149 return jbd2_fc_stop_do_commit(journal, commit_tid); 1150 if (reason == EXT4_FC_REASON_FC_START_FAILED || 1151 reason == EXT4_FC_REASON_INELIGIBLE) 1152 return jbd2_complete_transaction(journal, commit_tid); 1153 return 0; 1154 } 1155 --- 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: 43605 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH v9 5/9] ext4: main fast-commit commit path Date: Sat, 19 Sep 2020 16:19:03 +0800 [thread overview] Message-ID: <202009191602.OLtP5Go5%lkp@intel.com> (raw) In-Reply-To: <20200919005451.3899779-6-harshadshirwadkar@gmail.com> [-- Attachment #1: Type: text/plain, Size: 7650 bytes --] Hi Harshad, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on ext4/dev] [also build test WARNING on linus/master v5.9-rc5 next-20200918] [cannot apply to tip/perf/core] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Harshad-Shirwadkar/ext4-add-fast-commits-feature/20200919-085652 base: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev config: x86_64-randconfig-a006-20200917 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed79827aea444e6995fb3d36abc2bfd36331773c) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> fs/ext4/fast_commit.c:1079:6: warning: variable 'start_time' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/fast_commit.c:1135:51: note: uninitialized use occurs here commit_time = ktime_to_ns(ktime_sub(ktime_get(), start_time)); ^~~~~~~~~~ include/linux/ktime.h:46:39: note: expanded from macro 'ktime_sub' #define ktime_sub(lhs, rhs) ((lhs) - (rhs)) ^~~ fs/ext4/fast_commit.c:1079:2: note: remove the 'if' if its condition is always false if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> fs/ext4/fast_commit.c:1079:6: warning: variable 'start_time' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized] if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/fast_commit.c:1135:51: note: uninitialized use occurs here commit_time = ktime_to_ns(ktime_sub(ktime_get(), start_time)); ^~~~~~~~~~ include/linux/ktime.h:46:39: note: expanded from macro 'ktime_sub' #define ktime_sub(lhs, rhs) ((lhs) - (rhs)) ^~~ fs/ext4/fast_commit.c:1079:6: note: remove the '||' if its condition is always false if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/fast_commit.c:1075:20: note: initialize the variable 'start_time' to silence this warning ktime_t start_time, commit_time; ^ = 0 2 warnings generated. # https://github.com/0day-ci/linux/commit/2384cbfbcf98b789d426c39b458c52adbb36d4f9 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Harshad-Shirwadkar/ext4-add-fast-commits-feature/20200919-085652 git checkout 2384cbfbcf98b789d426c39b458c52adbb36d4f9 vim +1079 fs/ext4/fast_commit.c 1061 1062 /* 1063 * The main commit entry point. Performs a fast commit for transaction 1064 * commit_tid if needed. If it's not possible to perform a fast commit 1065 * due to various reasons, we fall back to full commit. Returns 0 1066 * on success, error otherwise. 1067 */ 1068 int ext4_fc_commit(journal_t *journal, tid_t commit_tid) 1069 { 1070 struct super_block *sb = (struct super_block *)(journal->j_private); 1071 struct ext4_sb_info *sbi = EXT4_SB(sb); 1072 int nblks = 0, ret, bsize = journal->j_blocksize; 1073 int subtid = atomic_read(&sbi->s_fc_subtid); 1074 int reason = EXT4_FC_REASON_OK, fc_bufs_before = 0; 1075 ktime_t start_time, commit_time; 1076 1077 trace_ext4_fc_commit_start(sb); 1078 > 1079 if (!test_opt2(sb, JOURNAL_FAST_COMMIT) || 1080 (ext4_fc_is_ineligible(sb))) { 1081 reason = EXT4_FC_REASON_INELIGIBLE; 1082 goto out; 1083 } 1084 1085 start_time = ktime_get(); 1086 restart_fc: 1087 ret = jbd2_fc_start(journal, commit_tid); 1088 if (ret == -EALREADY) { 1089 /* There was an ongoing commit, check if we need to restart */ 1090 if (atomic_read(&sbi->s_fc_subtid) <= subtid && 1091 commit_tid > journal->j_commit_sequence) 1092 goto restart_fc; 1093 reason = EXT4_FC_REASON_ALREADY_COMMITTED; 1094 goto out; 1095 } else if (ret) { 1096 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1097 reason = EXT4_FC_REASON_FC_START_FAILED; 1098 goto out; 1099 } 1100 1101 fc_bufs_before = (sbi->s_fc_bytes + bsize - 1) / bsize; 1102 ret = ext4_fc_perform_commit(journal); 1103 if (ret < 0) { 1104 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1105 reason = EXT4_FC_REASON_FC_FAILED; 1106 goto out; 1107 } 1108 nblks = (sbi->s_fc_bytes + bsize - 1) / bsize - fc_bufs_before; 1109 ret = jbd2_fc_wait_bufs(journal, nblks); 1110 if (ret < 0) { 1111 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1112 reason = EXT4_FC_REASON_FC_FAILED; 1113 goto out; 1114 } 1115 atomic_inc(&sbi->s_fc_subtid); 1116 jbd2_fc_stop(journal); 1117 out: 1118 /* Has any ineligible update happened since we started? */ 1119 if (reason == EXT4_FC_REASON_OK && ext4_fc_is_ineligible(sb)) { 1120 sbi->s_fc_stats.fc_ineligible_reason_count[EXT4_FC_COMMIT_FAILED]++; 1121 reason = EXT4_FC_REASON_INELIGIBLE; 1122 } 1123 1124 spin_lock(&sbi->s_fc_lock); 1125 if (reason != EXT4_FC_REASON_OK && 1126 reason != EXT4_FC_REASON_ALREADY_COMMITTED) { 1127 sbi->s_fc_stats.fc_ineligible_commits++; 1128 } else { 1129 sbi->s_fc_stats.fc_num_commits++; 1130 sbi->s_fc_stats.fc_numblks += nblks; 1131 } 1132 spin_unlock(&sbi->s_fc_lock); 1133 nblks = (reason == EXT4_FC_REASON_OK) ? nblks : 0; 1134 trace_ext4_fc_commit_stop(sb, nblks, reason); 1135 commit_time = ktime_to_ns(ktime_sub(ktime_get(), start_time)); 1136 /* 1137 * weight the commit time higher than the average time so we don't 1138 * react too strongly to vast changes in the commit time 1139 */ 1140 if (likely(sbi->s_fc_avg_commit_time)) 1141 sbi->s_fc_avg_commit_time = (commit_time + 1142 sbi->s_fc_avg_commit_time * 3) / 4; 1143 else 1144 sbi->s_fc_avg_commit_time = commit_time; 1145 jbd_debug(1, 1146 "Fast commit ended with blks = %d, reason = %d, subtid - %d", 1147 nblks, reason, subtid); 1148 if (reason == EXT4_FC_REASON_FC_FAILED) 1149 return jbd2_fc_stop_do_commit(journal, commit_tid); 1150 if (reason == EXT4_FC_REASON_FC_START_FAILED || 1151 reason == EXT4_FC_REASON_INELIGIBLE) 1152 return jbd2_complete_transaction(journal, commit_tid); 1153 return 0; 1154 } 1155 --- 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: 43605 bytes --]
next prev parent reply other threads:[~2020-09-19 8:21 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-19 0:54 [PATCH v9 0/9] ext4: add fast commits feature Harshad Shirwadkar 2020-09-19 0:54 ` [PATCH v9 1/9] doc: update ext4 and journalling docs to include fast commit feature Harshad Shirwadkar 2020-09-22 17:50 ` Darrick J. Wong 2020-09-24 6:56 ` harshad shirwadkar 2020-10-09 18:28 ` Theodore Y. Ts'o 2020-10-13 0:27 ` harshad shirwadkar 2020-09-19 0:54 ` [PATCH v9 2/9] ext4: add fast_commit feature and handling for extended mount options Harshad Shirwadkar 2020-10-09 17:58 ` Theodore Y. Ts'o 2020-10-13 0:27 ` harshad shirwadkar 2020-09-19 0:54 ` [PATCH v9 3/9] ext4 / jbd2: add fast commit initialization Harshad Shirwadkar 2020-09-19 15:22 ` kernel test robot 2020-09-19 15:22 ` kernel test robot 2020-10-09 16:10 ` Ritesh Harjani 2020-10-13 0:28 ` harshad shirwadkar 2020-09-19 0:54 ` [PATCH v9 4/9] jbd2: add fast commit machinery Harshad Shirwadkar 2020-10-09 16:16 ` Ritesh Harjani 2020-10-13 0:27 ` harshad shirwadkar 2020-09-19 0:54 ` [PATCH v9 5/9] ext4: main fast-commit commit path Harshad Shirwadkar 2020-09-19 4:03 ` kernel test robot 2020-09-19 8:19 ` kernel test robot [this message] 2020-09-19 8:19 ` kernel test robot 2020-09-20 1:34 ` kernel test robot 2020-10-09 17:04 ` Ritesh Harjani 2020-10-13 0:25 ` harshad shirwadkar 2020-10-09 19:14 ` Theodore Y. Ts'o 2020-10-13 0:27 ` harshad shirwadkar 2020-09-19 0:54 ` [PATCH v9 6/9] jbd2: fast commit recovery path Harshad Shirwadkar 2020-09-19 11:27 ` kernel test robot 2020-09-19 0:54 ` [PATCH v9 7/9] ext4: " Harshad Shirwadkar 2020-09-19 14:15 ` kernel test robot 2020-09-19 14:15 ` kernel test robot 2020-10-09 17:14 ` Ritesh Harjani 2020-10-13 0:27 ` harshad shirwadkar 2020-09-19 0:54 ` [PATCH v9 8/9] ext4: add a mount opt to forcefully turn fast commits on Harshad Shirwadkar 2020-09-19 0:54 ` [PATCH v9 9/9] ext4: add fast commit stats in procfs 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=202009191602.OLtP5Go5%lkp@intel.com \ --to=lkp@intel.com \ --cc=clang-built-linux@googlegroups.com \ --cc=harshadshirwadkar@gmail.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-ext4@vger.kernel.org \ --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: linkBe 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.