Re: [PATCH] f2fs: add new idle interval timing for discard and gc paths

From: kbuild test robot
Date: Mon Sep 10 2018 - 13:38:03 EST


Hi Sahitya,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on f2fs/dev-test]
[also build test ERROR on next-20180910]
[cannot apply to v4.19-rc3]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Sahitya-Tummala/f2fs-add-new-idle-interval-timing-for-discard-and-gc-paths/20180911-011700
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: x86_64-randconfig-x013-201836 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

fs//f2fs/segment.c: In function '__issue_discard_cmd_orderly':
>> fs//f2fs/segment.c:1314:29: error: too few arguments to function 'is_idle'
if (dpolicy->io_aware && !is_idle(sbi)) {
^~~~~~~
In file included from fs//f2fs/segment.c:22:0:
fs//f2fs/f2fs.h:1381:20: note: declared here
static inline bool is_idle(struct f2fs_sb_info *sbi, int type)
^~~~~~~

vim +/is_idle +1314 fs//f2fs/segment.c

004b6862 Chao Yu 2017-04-14 1283
20ee4382 Chao Yu 2018-07-08 1284 static unsigned int __issue_discard_cmd_orderly(struct f2fs_sb_info *sbi,
20ee4382 Chao Yu 2018-07-08 1285 struct discard_policy *dpolicy)
20ee4382 Chao Yu 2018-07-08 1286 {
20ee4382 Chao Yu 2018-07-08 1287 struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
20ee4382 Chao Yu 2018-07-08 1288 struct discard_cmd *prev_dc = NULL, *next_dc = NULL;
20ee4382 Chao Yu 2018-07-08 1289 struct rb_node **insert_p = NULL, *insert_parent = NULL;
20ee4382 Chao Yu 2018-07-08 1290 struct discard_cmd *dc;
20ee4382 Chao Yu 2018-07-08 1291 struct blk_plug plug;
20ee4382 Chao Yu 2018-07-08 1292 unsigned int pos = dcc->next_pos;
20ee4382 Chao Yu 2018-07-08 1293 unsigned int issued = 0;
20ee4382 Chao Yu 2018-07-08 1294 bool io_interrupted = false;
20ee4382 Chao Yu 2018-07-08 1295
20ee4382 Chao Yu 2018-07-08 1296 mutex_lock(&dcc->cmd_lock);
20ee4382 Chao Yu 2018-07-08 1297 dc = (struct discard_cmd *)f2fs_lookup_rb_tree_ret(&dcc->root,
20ee4382 Chao Yu 2018-07-08 1298 NULL, pos,
20ee4382 Chao Yu 2018-07-08 1299 (struct rb_entry **)&prev_dc,
20ee4382 Chao Yu 2018-07-08 1300 (struct rb_entry **)&next_dc,
20ee4382 Chao Yu 2018-07-08 1301 &insert_p, &insert_parent, true);
20ee4382 Chao Yu 2018-07-08 1302 if (!dc)
20ee4382 Chao Yu 2018-07-08 1303 dc = next_dc;
20ee4382 Chao Yu 2018-07-08 1304
20ee4382 Chao Yu 2018-07-08 1305 blk_start_plug(&plug);
20ee4382 Chao Yu 2018-07-08 1306
20ee4382 Chao Yu 2018-07-08 1307 while (dc) {
20ee4382 Chao Yu 2018-07-08 1308 struct rb_node *node;
6b9cb124 Chao Yu 2018-08-08 1309 int err = 0;
20ee4382 Chao Yu 2018-07-08 1310
20ee4382 Chao Yu 2018-07-08 1311 if (dc->state != D_PREP)
20ee4382 Chao Yu 2018-07-08 1312 goto next;
20ee4382 Chao Yu 2018-07-08 1313
20ee4382 Chao Yu 2018-07-08 @1314 if (dpolicy->io_aware && !is_idle(sbi)) {
20ee4382 Chao Yu 2018-07-08 1315 io_interrupted = true;
20ee4382 Chao Yu 2018-07-08 1316 break;
20ee4382 Chao Yu 2018-07-08 1317 }
20ee4382 Chao Yu 2018-07-08 1318
20ee4382 Chao Yu 2018-07-08 1319 dcc->next_pos = dc->lstart + dc->len;
6b9cb124 Chao Yu 2018-08-08 1320 err = __submit_discard_cmd(sbi, dpolicy, dc, &issued);
20ee4382 Chao Yu 2018-07-08 1321
35ec7d57 Chao Yu 2018-08-06 1322 if (issued >= dpolicy->max_requests)
20ee4382 Chao Yu 2018-07-08 1323 break;
20ee4382 Chao Yu 2018-07-08 1324 next:
20ee4382 Chao Yu 2018-07-08 1325 node = rb_next(&dc->rb_node);
6b9cb124 Chao Yu 2018-08-08 1326 if (err)
6b9cb124 Chao Yu 2018-08-08 1327 __remove_discard_cmd(sbi, dc);
20ee4382 Chao Yu 2018-07-08 1328 dc = rb_entry_safe(node, struct discard_cmd, rb_node);
20ee4382 Chao Yu 2018-07-08 1329 }
20ee4382 Chao Yu 2018-07-08 1330
20ee4382 Chao Yu 2018-07-08 1331 blk_finish_plug(&plug);
20ee4382 Chao Yu 2018-07-08 1332
20ee4382 Chao Yu 2018-07-08 1333 if (!dc)
20ee4382 Chao Yu 2018-07-08 1334 dcc->next_pos = 0;
20ee4382 Chao Yu 2018-07-08 1335
20ee4382 Chao Yu 2018-07-08 1336 mutex_unlock(&dcc->cmd_lock);
20ee4382 Chao Yu 2018-07-08 1337
20ee4382 Chao Yu 2018-07-08 1338 if (!issued && io_interrupted)
20ee4382 Chao Yu 2018-07-08 1339 issued = -1;
20ee4382 Chao Yu 2018-07-08 1340
20ee4382 Chao Yu 2018-07-08 1341 return issued;
20ee4382 Chao Yu 2018-07-08 1342 }
20ee4382 Chao Yu 2018-07-08 1343

:::::: The code at line 1314 was first introduced by commit
:::::: 20ee4382322cd9cf6ecfcf4f429ed108c617fb4a f2fs: issue small discard by LBA order

:::::: TO: Chao Yu <yuchao0@xxxxxxxxxx>
:::::: CC: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip