Hi Boris, Thank you for the patch! Yet something to improve: [auto build test ERROR on kdave/for-next] [also build test ERROR on next-20221116] [cannot apply to linus/master v6.1-rc5] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Boris-Burkov/btrfs-data-block-group-size-classes/20221117-032311 base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next patch link: https://lore.kernel.org/r/b0bf853ab9d2039ce883a5bc2086f8833c528ebf.1668626092.git.boris%40bur.io patch subject: [PATCH v2 4/4] btrfs: load block group size class when caching config: i386-randconfig-a011-20211213 compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/dfa5c0e232156b57322889d221646f891f5da3b8 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Boris-Burkov/btrfs-data-block-group-size-classes/20221117-032311 git checkout dfa5c0e232156b57322889d221646f891f5da3b8 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): ld: fs/btrfs/block-group.o: in function `sample_block_group_extent_item': >> fs/btrfs/block-group.c:584: undefined reference to `__udivdi3' pahole: .tmp_vmlinux.btf: No such file or directory .btf.vmlinux.bin.o: file not recognized: file format not recognized vim +584 fs/btrfs/block-group.c 542 543 /* 544 * Get an arbitrary extent item index / max_index through the block group 545 * 546 * @block_group: the block group to sample from 547 * @index: the integral step through the block group to grab from 548 * @max_index: the granularity of the sampling 549 * @key: return value parameter for the item we find 550 * 551 * pre-conditions on indices: 552 * 0 <= index <= max_index 553 * 0 < max_index 554 * 555 * Returns: 0 on success, 1 if the search didn't yield a useful item, negative 556 * error code on error. 557 */ 558 static int sample_block_group_extent_item(struct btrfs_block_group *block_group, 559 int index, int max_index, 560 struct btrfs_key *key) 561 { 562 struct btrfs_fs_info *fs_info = block_group->fs_info; 563 struct btrfs_root *extent_root; 564 int ret = 0; 565 u64 search_offset; 566 struct btrfs_path *path; 567 568 ASSERT(index >= 0); 569 ASSERT(index <= max_index); 570 ASSERT(max_index > 0); 571 572 path = btrfs_alloc_path(); 573 if (!path) 574 return -ENOMEM; 575 576 down_read(&fs_info->commit_root_sem); 577 extent_root = btrfs_extent_root(fs_info, max_t(u64, block_group->start, 578 BTRFS_SUPER_INFO_OFFSET)); 579 580 path->skip_locking = 1; 581 path->search_commit_root = 1; 582 path->reada = READA_FORWARD; 583 > 584 search_offset = index * (block_group->length / max_index); 585 key->objectid = block_group->start + search_offset; 586 key->offset = 0; 587 key->type = BTRFS_EXTENT_ITEM_KEY; 588 589 ret = btrfs_search_slot(NULL, extent_root, key, path, 0, 0); 590 if (ret != 0) 591 goto out; 592 if (key->objectid < block_group->start || 593 key->objectid > block_group->start + block_group->length) { 594 ret = 1; 595 goto out; 596 } 597 if (key->type != BTRFS_EXTENT_ITEM_KEY) { 598 ret = 1; 599 goto out; 600 } 601 out: 602 btrfs_free_path(path); 603 up_read(&fs_info->commit_root_sem); 604 return ret; 605 } 606 -- 0-DAY CI Kernel Test Service https://01.org/lkp